time="2024-04-29T18:34:09Z" level=warning msg="/builds/FakIA/fachgebiet-iks/goldi/goldi2/crosslab/integration-test/docker-compose.yaml: `version` is obsolete" Container integration-test-federation-1 Creating Container integration-test-gateway-1 Creating Container integration-test-authorization-1 Creating Container integration-test-device-1 Creating Container integration-test-experiment-1 Creating Container integration-test-authentication-1 Creating Container integration-test-federation-1 Created Container integration-test-experiment-1 Created Container integration-test-device-1 Created Container integration-test-gateway-1 Created Container integration-test-authentication-1 Created Container integration-test-authorization-1 Created Attaching to authentication-1, authorization-1, device-1, experiment-1, federation-1, gateway-1 gateway-1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration gateway-1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/ gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf gateway-1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf gateway-1 | /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-create_config.sh gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/authorization_service.conf to /etc/nginx/authorization_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/nginx.conf to /etc/nginx/nginx.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/device_service.conf to /etc/nginx/device_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/experiment_service.conf to /etc/nginx/experiment_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/auth_service.conf to /etc/nginx/auth_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/federation_service.conf to /etc/nginx/federation_service.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_json_errors.conf to /etc/nginx/api_json_errors.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_backends.conf to /etc/nginx/api_backends.conf gateway-1 | 20-create_config.sh: Running envsubst on /etc/nginx/templates/api_gateway.conf to /etc/nginx/api_gateway.conf gateway-1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh gateway-1 | /docker-entrypoint.sh: Configuration complete; ready for start up federation-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"addrs":["localhost:3011"],"diagnostic-addrs":[],"level":"info","msg":"Initializing server.","subsystem":"opa","time":"2024-04-29T18:34:38Z"} federation-1 | {"level":"info","message":"Federation Service started successfully"} authentication-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} experiment-1 | {"level":"info","message":"Experiment Service started successfully"} authentication-1 | {"level":"info","message":"Authentication Service started successfully"} device-1 | {"level":"info","log_level":"info","message":"Logging initialized","transports":"stdout"} authorization-1 | {"client_addr":"127.0.0.1:44394","level":"info","msg":"Received request.","req_id":1,"req_method":"GET","req_path":"/","subsystem":"opa","time":"2024-04-29T18:34:39Z"} authorization-1 | {"client_addr":"127.0.0.1:44394","level":"info","msg":"Sent response.","req_id":1,"req_method":"GET","req_path":"/","resp_bytes":1424,"resp_duration":0.325497,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:39Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"๐Ÿงช experimental features enabled: []","subsystem":"openfga","timestamp":1714415679.3738863} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"using 'memory' storage engine","subsystem":"openfga","timestamp":1714415679.3740208} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"warn","message":"authentication is disabled","subsystem":"openfga","timestamp":1714415679.3740432} 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":1714415679.3740776} 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":1714415679.37418} 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":1714415679.3744485,"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":1714415679.3749757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"HTTP server listening on 'localhost:3013'...","subsystem":"openfga","timestamp":1714415679.376267} device-1 | {"level":"info","message":"Device Service started successfully"} 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:44466","raw_request":{"name":"crosslab"},"raw_response":{"created_at":"2024-04-29T18:34:39.397632319Z","id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","name":"crosslab","updated_at":"2024-04-29T18:34:39.397632319Z"},"request_id":"69f0e61e-2e4f-4c2d-b9eb-78374d453f49","subsystem":"openfga","timestamp":1714415679.3977065} 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:44466","raw_request":{"schema_version":"1.1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_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":"01HWNJ6DYPY3P4DYMEYH0X9M4R"},"request_id":"59840247-9eb8-4736-bf98-b39c6edf2e41","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415679.4470155} authorization-1 | {"client_addr":"127.0.0.1:44394","level":"info","msg":"Received request.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","subsystem":"opa","time":"2024-04-29T18:34:39Z"} authorization-1 | {"client_addr":"127.0.0.1:44394","level":"info","msg":"Sent response.","req_id":2,"req_method":"PUT","req_path":"/v1/data/jwt_secret","resp_bytes":0,"resp_duration":0.184198,"resp_status":204,"subsystem":"opa","time":"2024-04-29T18:34:39Z"} authorization-1 | {"level":"info","message":"Authorization Service started successfully"} authorization-1 | {"current_version":"0.54.0","download_opa":"https://openpolicyagent.org/downloads/v0.64.1/opa_linux_amd64","latest_version":"0.64.1","level":"info","msg":"OPA is out of date.","release_notes":"https://github.com/open-policy-agent/opa/releases/tag/v0.64.1","subsystem":"opa","time":"2024-04-29T18:34:39Z"} gateway-1 | {"time_local":"29/Apr/2024:18:34:46 +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.020","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"39bd2a5a66b0611f4de53f77e3019bb4"} authentication-1 | {"level":"info","message":"HEAD /auth/status 200 13ms","method":"HEAD","requestID":"39bd2a5a66b0611f4de53f77e3019bb4","responseTime":13,"status":200,"url":"/auth/status"} gateway-1 | {"time_local":"29/Apr/2024:18:34:46 +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.017","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"5b6582535dfa880197316c0150bded8b"} device-1 | {"level":"info","message":"HEAD /device/status 200 11ms","method":"HEAD","requestID":"27878910-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/device/status"} gateway-1 | {"time_local":"29/Apr/2024:18:34:46 +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.014","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"70be58231fe01e77de6acb9a4ea1d52d"} authorization-1 | {"level":"info","message":"HEAD /authorization/status 200 6ms","meta":{"req":{"headers":{"accept":"*/*","connection":"close","host":"authorization_service","user-agent":"curl/7.81.0","x-request-id":"70be58231fe01e77de6acb9a4ea1d52d"},"httpVersion":"1.0","method":"HEAD","originalUrl":"/authorization/status","query":{},"url":"/authorization/status"},"res":{"statusCode":200},"responseTime":6}} gateway-1 | {"time_local":"29/Apr/2024:18:34:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /federation/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.014","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"27edc06b12e42a32e414ce99b35b7b38"} federation-1 | {"level":"info","message":"HEAD /federation/status 200 9ms","method":"HEAD","requestID":"278e66e0-0657-11ef-90cb-6d2d7821f328","responseTime":9,"status":200,"url":"/federation/status"} gateway-1 | {"time_local":"29/Apr/2024:18:34:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"HEAD /experiment/status HTTP/1.1","status": "200","body_bytes_sent":"0","request_time":"0.014","http_referrer":"","http_user_agent":"curl/7.81.0","requestID":"8c9ebbe61bc79611eece763699fc7151"} experiment-1 | {"level":"info","message":"HEAD /experiment/status 200 10ms","method":"HEAD","requestID":"27919b30-0657-11ef-9971-f1af962f8a7f","responseTime":10,"status":200,"url":"/experiment/status"} gateway-1 | {"time_local":"29/Apr/2024:18:34:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /login HTTP/1.1","status": "201","body_bytes_sent":"88","request_time":"0.154","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cfa911d9e4619ad4c23cdff34b9ef86d"} authentication-1 | {"level":"info","message":"POST /login 201 134ms","method":"POST","requestID":"cfa911d9e4619ad4c23cdff34b9ef86d","responseTime":134,"status":201,"url":"/login"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY4OX0.l-ji61sdJx2qvu2PWadmU7ZbrII5JB2fP6SpBFkOiAE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 45ms","method":"GET","requestID":"e1fe60f1a36d91bc5841fc900cde2dd9","responseTime":45,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:50Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":3,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.160839,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415689,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY4OX0.l-ji61sdJx2qvu2PWadmU7ZbrII5JB2fP6SpBFkOiAE"} authorization-1 | {"level":"info","message":"POST /authorize 200 27ms","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":"e1fe60f1a36d91bc5841fc900cde2dd9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":27}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"67eb07ac-54be-44a0-b4d3-466dfdacd219","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.132341} 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":"e1fe60f1a36d91bc5841fc900cde2dd9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e05fccc8-e54e-4029-8162-de642371b30e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.149325} 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":"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":"e1fe60f1a36d91bc5841fc900cde2dd9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c96171da-bb2b-4474-bff0-2d9b5334a33b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.1686869} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"692aae8a-b90b-4b7a-8f52-a0e39b3d409b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.1693199} 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":"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":"e1fe60f1a36d91bc5841fc900cde2dd9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.168670756Z"}]},"request_id":"822ab54e-6fd7-499d-ad31-55f0fcaa0957","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.1787596} 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":"e1fe60f1a36d91bc5841fc900cde2dd9"},"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":"29/Apr/2024:18:34:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.298","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e1fe60f1a36d91bc5841fc900cde2dd9"} device-1 | {"level":"info","message":"POST /devices? 201 236ms","method":"POST","requestID":"e1fe60f1a36d91bc5841fc900cde2dd9","responseTime":236,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5MH0.lKi4YJ7oPa5jRWTa69qhxBGitkmDEAx0vOZ2whJZxZ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"abc1c24ba3da506f3668fd2fc300fddc","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:50Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":4,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.122482,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:50Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415690,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5MH0.lKi4YJ7oPa5jRWTa69qhxBGitkmDEAx0vOZ2whJZxZ8"} 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":"abc1c24ba3da506f3668fd2fc300fddc"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5a1e408b-4247-4a69-90db-d69bf3527067","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.2574725} 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":"abc1c24ba3da506f3668fd2fc300fddc"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f4d0362-b44b-4c85-b79c-a9ffd7c460e6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.2725685} 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":"abc1c24ba3da506f3668fd2fc300fddc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5b3f177c-2e83-4d99-9c14-ac9354bc9dc9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.288502} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fe19993a-3e5a-4e16-95e0-867b94027ba7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.2887604} 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":"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":"abc1c24ba3da506f3668fd2fc300fddc"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.288488887Z"}]},"request_id":"6581e880-7de8-4c59-a8c7-ff2ea0890d81","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415690.2974136} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"abc1c24ba3da506f3668fd2fc300fddc"},"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":"29/Apr/2024:18:34:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.099","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"abc1c24ba3da506f3668fd2fc300fddc"} device-1 | {"level":"info","message":"POST /devices? 201 88ms","method":"POST","requestID":"abc1c24ba3da506f3668fd2fc300fddc","responseTime":88,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bcd164657de3ab13f5e2c1d266ba0910","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"89472a1e4fbb70836fe705a54cc9d4fe","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.007","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bcd164657de3ab13f5e2c1d266ba0910"} device-1 | {"level":"info","message":"OPTIONS /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket 200 3ms","method":"OPTIONS","requestID":"bcd164657de3ab13f5e2c1d266ba0910","responseTime":3,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/websocket HTTP/1.1","status": "200","body_bytes_sent":"4","request_time":"0.009","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"89472a1e4fbb70836fe705a54cc9d4fe"} device-1 | {"level":"info","message":"OPTIONS /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/websocket 200 1ms","method":"OPTIONS","requestID":"89472a1e4fbb70836fe705a54cc9d4fe","responseTime":1,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 12ms","method":"GET","requestID":"ab48dedaeb24bb5b2b6917b351db8c6b","responseTime":12,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"level":"info","message":"GET /auth 200 11ms","method":"GET","requestID":"f92042100e60d745c8f945257df74be6","responseTime":11,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":5,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.353283,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"ab48dedaeb24bb5b2b6917b351db8c6b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":6,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.378986,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"f92042100e60d745c8f945257df74be6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/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":"f92042100e60d745c8f945257df74be6"} device-1 | {"level":"info","message":"POST /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/websocket 200 44ms","method":"POST","requestID":"f92042100e60d745c8f945257df74be6","responseTime":44,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.082","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ab48dedaeb24bb5b2b6917b351db8c6b"} device-1 | {"level":"info","message":"POST /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket 200 67ms","method":"POST","requestID":"ab48dedaeb24bb5b2b6917b351db8c6b","responseTime":67,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"3536cba7f244d264f3c012527b3e19e0","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":7,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.246844,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"3536cba7f244d264f3c012527b3e19e0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.168670756Z"}]},"request_id":"a25f4965-5b61-447a-8635-ba13a8622c63","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415692.8318467} 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":"3536cba7f244d264f3c012527b3e19e0"},"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":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/82ac78e7-34fd-4c88-94d1-3122196c083d? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3536cba7f244d264f3c012527b3e19e0"} device-1 | {"level":"info","message":"GET /devices/82ac78e7-34fd-4c88-94d1-3122196c083d? 200 41ms","method":"GET","requestID":"3536cba7f244d264f3c012527b3e19e0","responseTime":41,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ceb9e83098b5cd9058c5affbcebb0dcf","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":8,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.51494,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"ceb9e83098b5cd9058c5affbcebb0dcf"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.288488887Z"}]},"request_id":"d849a3b2-ff7a-4dfc-b87a-5e4038184c36","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415692.885457} 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":"ceb9e83098b5cd9058c5affbcebb0dcf"},"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":"29/Apr/2024:18:34:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 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":"ceb9e83098b5cd9058c5affbcebb0dcf"} device-1 | {"level":"info","message":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 200 32ms","method":"GET","requestID":"ceb9e83098b5cd9058c5affbcebb0dcf","responseTime":32,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"eb6e0105682d4d1a2fffd9b22fe7c78f","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:45964","level":"info","msg":"Received request.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":9,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.348329,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","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":"eb6e0105682d4d1a2fffd9b22fe7c78f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"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:45964","level":"info","msg":"Received request.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":10,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.189387,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"2b673440-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":11,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.644101,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"2b67a970-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.168670756Z"}]},"request_id":"f0c5a019-2bde-4121-ab67-f57077932da1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.2090812} 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":"2b673440-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.288488887Z"}]},"request_id":"d21110e1-ffe1-4292-945a-cd3b68625c53","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.2114415} 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":"2b67a970-0657-11ef-8390-917b0c22016f"},"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/82ac78e7-34fd-4c88-94d1-3122196c083d? 200 40ms","method":"GET","requestID":"2b673440-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 200 39ms","method":"GET","requestID":"2b67a970-0657-11ef-8390-917b0c22016f","responseTime":39,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"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:45964","level":"info","msg":"Received request.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":12,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.286808,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"2b7f7730-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":13,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.131644,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"2b7fc550-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d8d2f564-8fea-4f34-bacc-12e8f09f5b75","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.3719027} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":14,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.066288,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.288488887Z"}]},"request_id":"15f1f434-8d83-4d1b-940e-1a76dfea3c6c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.3731015} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b803a80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"level":"info","message":"POST /relations/query 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b7fc550-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.168670756Z"}]},"request_id":"be860189-2e74-4e92-9408-0d75d80cbda9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.376803} authorization-1 | {"level":"info","message":"POST /relations/query 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b7f7730-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":17}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff3f8a73a-7757-4d3a-8223-6a53b884608a#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff3f8a73a-7757-4d3a-8223-6a53b884608a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0eef1ba8-c706-457d-9bbf-8facc81e2181","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.389271} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling 200 41ms","method":"POST","requestID":"2b803a80-0657-11ef-8390-917b0c22016f","responseTime":41,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 200 45ms","method":"GET","requestID":"2b7fc550-0657-11ef-8390-917b0c22016f","responseTime":45,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbf50fd2-9346-4f4d-a636-718e357e43a3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.397581} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 38ms","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":"eb6e0105682d4d1a2fffd9b22fe7c78f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":38}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/82ac78e7-34fd-4c88-94d1-3122196c083d? 200 56ms","method":"GET","requestID":"2b7f7730-0657-11ef-8390-917b0c22016f","responseTime":56,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31341fb9-c50c-4ddc-b90b-62571b1bf19f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.407691} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":15,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.88358,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b876670-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling 200 22ms","method":"POST","requestID":"2b876670-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e35f6d62-b50e-4281-a27d-e8067f1e7fd2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.4219723} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":16,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.537688,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} gateway-1 | {"time_local":"29/Apr/2024:18:34:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.520","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eb6e0105682d4d1a2fffd9b22fe7c78f"} experiment-1 | {"level":"info","message":"POST /experiments? 201 493ms","method":"POST","requestID":"eb6e0105682d4d1a2fffd9b22fe7c78f","responseTime":493,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b896240-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling 200 19ms","method":"POST","requestID":"2b896240-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 9ms","method":"GET","requestID":"116b3941b50b530be3ea17edcddbb2cd","responseTime":9,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dcf0155c-fbe3-489b-99eb-6f1f89c6f7e3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.4437046} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":17,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.596872,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2b8d0bc0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":18,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.689072,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415693,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0"} 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":"116b3941b50b530be3ea17edcddbb2cd"},"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/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling 200 18ms","method":"POST","requestID":"2b8d0bc0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.168670756Z"}]},"request_id":"6dd099a6-4079-47bf-b62a-786d76205273","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.455889} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"088620ea-1971-4f5c-ae42-5563a5d87a09"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"d0ec577f-58ff-4273-9571-16a7e668a562"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"7cd50967-7af7-4e2c-bea4-9b0dce73b951"}]},"level":"info","message":"Built pairwise service configurations"} 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":"116b3941b50b530be3ea17edcddbb2cd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:34:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/82ac78e7-34fd-4c88-94d1-3122196c083d? 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":"116b3941b50b530be3ea17edcddbb2cd"} device-1 | {"level":"info","message":"GET /devices/82ac78e7-34fd-4c88-94d1-3122196c083d? 200 21ms","method":"GET","requestID":"116b3941b50b530be3ea17edcddbb2cd","responseTime":21,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d?"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7344a8c7f59efa99db2616a89974b44d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":19,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.296121,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415692,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Mn0.BdCj86blpyZAdKY5xd6bNZq6xmGgVojx2Txk7lX-WQ8"} 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":"2b91c6b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":20,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.788002,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415693,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0"} 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":"7344a8c7f59efa99db2616a89974b44d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:50.288488887Z"}]},"request_id":"cecc887e-17bf-4951-862d-6330a72dd73f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.4872139} 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":"7344a8c7f59efa99db2616a89974b44d"},"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":"29/Apr/2024:18:34:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 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":"7344a8c7f59efa99db2616a89974b44d"} device-1 | {"level":"info","message":"GET /devices/4c549a6c-f57e-463f-b2c0-14f907cde059? 200 21ms","method":"GET","requestID":"7344a8c7f59efa99db2616a89974b44d","responseTime":21,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5df09340-882a-4e27-bf36-8043bc71c220","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.513987} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"398e1a97-a4c8-4415-9c5f-f214026aa43f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.51462} 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":"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":"2b91c6b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":29}} 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/529cc9b9-abba-40c6-8570-8c987767b427'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427'"} 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 73ms","method":"POST","requestID":"2b91c6b0-0657-11ef-8390-917b0c22016f","responseTime":73,"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/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1f6d4bc1-0e56-48ca-8522-f376b1c2a4f6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.60356} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":21,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.583909,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2ba5c3e0-0657-11ef-8390-917b0c22016f"},"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/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling 200 12ms","method":"POST","requestID":"2ba5c3e0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d4c7c2eb-a003-40db-b9ee-61267ead6588","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.6184194} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":22,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.309355,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2ba834e0-0657-11ef-8390-917b0c22016f"},"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/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling 200 9ms","method":"POST","requestID":"2ba834e0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"535c7aedb81a2c087f43aa55c6965662","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/82ac78e7-34fd-4c88-94d1-3122196c083d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 15ms","method":"POST","requestID":"535c7aedb81a2c087f43aa55c6965662","responseTime":15,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.020","http_referrer":"","http_user_agent":"node-fetch","requestID":"535c7aedb81a2c087f43aa55c6965662"} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","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/529cc9b9-abba-40c6-8570-8c987767b427' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"530b739442a3f7b5453adb172f2f876f","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/82ac78e7-34fd-4c88-94d1-3122196c083d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F529cc9b9-abba-40c6-8570-8c987767b427","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c34ae5c-9711-459e-b3dc-e3f26d99852a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.8371732} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":23,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.339069,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427","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":"2bc8dc40-0657-11ef-8390-917b0c22016f"},"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/529cc9b9-abba-40c6-8570-8c987767b427 200 17ms","method":"GET","requestID":"2bc8dc40-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"530b739442a3f7b5453adb172f2f876f","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"530b739442a3f7b5453adb172f2f876f"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"710b31c3-97a4-43c7-8e78-7b1666a08895","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.8727336} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":24,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.301138,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2bcef6c0-0657-11ef-8390-917b0c22016f"},"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/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling 200 10ms","method":"POST","requestID":"2bcef6c0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0719f533-d58b-4642-9ad6-2ca0df354d5c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.8867772} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":25,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.136908,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2bd0f290-0657-11ef-8390-917b0c22016f"},"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/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling 200 11ms","method":"POST","requestID":"2bd0f290-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"15eaa9148eca7cf68b58722a561fbb5a","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":26,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.727669,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415693,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0"} 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":"15eaa9148eca7cf68b58722a561fbb5a"},"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/f3f8a73a-7757-4d3a-8223-6a53b884608a"} gateway-1 | {"time_local":"29/Apr/2024:18:34:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"15eaa9148eca7cf68b58722a561fbb5a"} experiment-1 | {"level":"info","message":"GET /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a 200 17ms","method":"GET","requestID":"15eaa9148eca7cf68b58722a561fbb5a","responseTime":17,"status":200,"url":"/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"46b9430a3188aea23766924e85a5ff29","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":27,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.788193,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415693,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0"} 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":"46b9430a3188aea23766924e85a5ff29"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":28,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.731801,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415693,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5M30.X7Y3dMUPB8SiYvXt8H3Tz6KEcfeU5BzUr6xyP2C-3H0"} 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":"2bdba0f0-0657-11ef-8390-917b0c22016f"},"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/529cc9b9-abba-40c6-8570-8c987767b427' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4176e07ef83e5e6d5d1396ff607acb82","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b7466e1bea436d0e39a562a748031201","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/82ac78e7-34fd-4c88-94d1-3122196c083d"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F529cc9b9-abba-40c6-8570-8c987767b427': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F529cc9b9-abba-40c6-8570-8c987767b427","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"ac701460-d6ea-455e-aff3-0a24f22f92d9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.9878294} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"50c00e24-9438-4fa3-bbd5-132961844f08","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415693.988147} device-1 | {"data":{"peerconnection":"529cc9b9-abba-40c6-8570-8c987767b427","statusDeviceA":"closed","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} 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":"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":"2bdba0f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/529cc9b9-abba-40c6-8570-8c987767b427 204 46ms","method":"DELETE","requestID":"2bdba0f0-0657-11ef-8390-917b0c22016f","responseTime":46,"status":204,"url":"/peerconnections/529cc9b9-abba-40c6-8570-8c987767b427"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":29,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.31479,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F82ac78e7-34fd-4c88-94d1-3122196c083d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2794cd48-aea5-42a9-818f-0c1b7453032c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.037236} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/82ac78e7-34fd-4c88-94d1-3122196c083d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2be787d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling 200 18ms","method":"POST","requestID":"2be787d0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/82ac78e7-34fd-4c88-94d1-3122196c083d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff3f8a73a-7757-4d3a-8223-6a53b884608a': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff3f8a73a-7757-4d3a-8223-6a53b884608a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"f3abf374-b6a3-4cbf-a4e0-f1d4d008456c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.0564299} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"473c1b7a-01e6-4615-8258-3fe66cb4bd5e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.0567877} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46b9430a3188aea23766924e85a5ff29"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":32}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4c549a6c-f57e-463f-b2c0-14f907cde059","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35fa43e0-7071-47e9-9c24-f2b42c6499bb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.0606508} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":30,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.461884,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4c549a6c-f57e-463f-b2c0-14f907cde059","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2beb0a40-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling 200 19ms","method":"POST","requestID":"2beb0a40-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/4c549a6c-f57e-463f-b2c0-14f907cde059/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"} gateway-1 | {"time_local":"29/Apr/2024:18:34:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"46b9430a3188aea23766924e85a5ff29"} experiment-1 | {"level":"info","message":"DELETE /experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a 204 202ms","method":"DELETE","requestID":"46b9430a3188aea23766924e85a5ff29","responseTime":202,"status":204,"url":"/experiments/f3f8a73a-7757-4d3a-8223-6a53b884608a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 163ms","method":"POST","requestID":"4176e07ef83e5e6d5d1396ff607acb82","responseTime":163,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.167","http_referrer":"","http_user_agent":"node-fetch","requestID":"4176e07ef83e5e6d5d1396ff607acb82"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 162ms","method":"POST","requestID":"b7466e1bea436d0e39a562a748031201","responseTime":162,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.167","http_referrer":"","http_user_agent":"node-fetch","requestID":"b7466e1bea436d0e39a562a748031201"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5446b75796baf1887acb8882e224008d","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:34:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"1.395","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8bfece59322684c68e425d9d540188a8"} gateway-1 | {"time_local":"29/Apr/2024:18:34:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"1.383","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"dab9fcc0953254f8b83584354715796e"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":31,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.036282,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415694,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI"} 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":"5446b75796baf1887acb8882e224008d"},"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/4c549a6c-f57e-463f-b2c0-14f907cde059' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"065fb4d0-bbea-44dc-ab02-4ce511ed0e19","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.1638258} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5446b75796baf1887acb8882e224008d"},"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/82ac78e7-34fd-4c88-94d1-3122196c083d' 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"25383bf1-aaee-4811-b7a6-058249d8afca","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.1696277} 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":"5446b75796baf1887acb8882e224008d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"1545ae84-49c0-48fb-a651-42318f976a04","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.1820986} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5371b97c-5ef2-4e30-9703-ddf792f93618","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.1823115} 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":"5446b75796baf1887acb8882e224008d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.182087992Z"}]},"request_id":"0dee0ea3-09b5-4fe4-a1dc-b8db0edaadb7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.187179} 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":"5446b75796baf1887acb8882e224008d"},"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":"29/Apr/2024:18:34: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.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5446b75796baf1887acb8882e224008d"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"5446b75796baf1887acb8882e224008d","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f4717d7bfe428da7cf19420d7421facd","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":32,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.645398,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415694,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI"} 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":"f4717d7bfe428da7cf19420d7421facd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0dafc9b5-8975-4509-b440-31b52efb45ce","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.218923} 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":"f4717d7bfe428da7cf19420d7421facd"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"347858c3-2c69-4f89-9640-7f7f0a4aa40c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.2247634} 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":"f4717d7bfe428da7cf19420d7421facd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"6be27a81-0e8b-4bdf-af66-566ad1beb8b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.235469} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"296eb51c-077a-4304-be66-6eec783edc44","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.2358336} 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":"f4717d7bfe428da7cf19420d7421facd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"759ccdde-2f47-466a-a332-f1ef926ca06e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.2410865} 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":"f4717d7bfe428da7cf19420d7421facd"},"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":"29/Apr/2024:18:34: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.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f4717d7bfe428da7cf19420d7421facd"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"f4717d7bfe428da7cf19420d7421facd","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6d3cecdf898c963a36fd6c36248db1d1","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":33,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014176,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415694,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI"} 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":"6d3cecdf898c963a36fd6c36248db1d1"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"20f9efff-0b86-4dc0-a853-8e243afa7065","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.851048} 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":"6d3cecdf898c963a36fd6c36248db1d1"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff5fbdf3-cbce-4cee-a405-645212c01375","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.8583627} 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":"6d3cecdf898c963a36fd6c36248db1d1"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"b188ef46-5934-4440-8fe8-34f02c846df1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415694.874554} 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":"6d3cecdf898c963a36fd6c36248db1d1"},"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/044af119-4a51-4495-9762-fab592f9cf21 200 62ms","method":"PATCH","requestID":"6d3cecdf898c963a36fd6c36248db1d1","responseTime":62,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21"} gateway-1 | {"time_local":"29/Apr/2024:18:34:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/044af119-4a51-4495-9762-fab592f9cf21 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.071","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6d3cecdf898c963a36fd6c36248db1d1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"18f675e3c18816ac010b2fa299147a32","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":34,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.518816,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415694,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5NH0.xYhBchXl9IR7qV9I43h8MpLYk1L0uJJ0KFtvNAOBROI"} 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":"18f675e3c18816ac010b2fa299147a32"},"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":"29/Apr/2024:18:34:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/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":"18f675e3c18816ac010b2fa299147a32"} device-1 | {"level":"info","message":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/websocket 200 20ms","method":"POST","requestID":"18f675e3c18816ac010b2fa299147a32","responseTime":20,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b2e771fbb5b762729ce7cce6775935f5","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/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":"b2e771fbb5b762729ce7cce6775935f5"} device-1 | {"level":"info","message":"OPTIONS /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/websocket 200 1ms","method":"OPTIONS","requestID":"b2e771fbb5b762729ce7cce6775935f5","responseTime":1,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"3b3efda968c0a14fd4f0afddddf7aa27","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":35,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.262785,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"3b3efda968c0a14fd4f0afddddf7aa27"},"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":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/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":"3b3efda968c0a14fd4f0afddddf7aa27"} device-1 | {"level":"info","message":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/websocket 200 33ms","method":"POST","requestID":"3b3efda968c0a14fd4f0afddddf7aa27","responseTime":33,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"16680f3743b75e61dd111a0a3373e8a6","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":36,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.326987,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"16680f3743b75e61dd111a0a3373e8a6"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.182087992Z"}]},"request_id":"c43c4b8c-4c36-4f13-bc32-850ed0c152e4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.3096418} 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":"16680f3743b75e61dd111a0a3373e8a6"},"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":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"16680f3743b75e61dd111a0a3373e8a6"} device-1 | {"level":"info","message":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? 200 22ms","method":"GET","requestID":"16680f3743b75e61dd111a0a3373e8a6","responseTime":22,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dfa273629b6389d7ec2f14bde7fe8776","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":37,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.134856,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"dfa273629b6389d7ec2f14bde7fe8776"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"80202e76-50c7-4acd-884d-4b230a42fb7d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.3414638} 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":"dfa273629b6389d7ec2f14bde7fe8776"},"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":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dfa273629b6389d7ec2f14bde7fe8776"} device-1 | {"level":"info","message":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? 200 21ms","method":"GET","requestID":"dfa273629b6389d7ec2f14bde7fe8776","responseTime":21,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e5c102155835444d9fb56d2cbe804cd3","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:45964","level":"info","msg":"Received request.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":38,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.19407,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"e5c102155835444d9fb56d2cbe804cd3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"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:45964","level":"info","msg":"Received request.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":39,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.80398,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"2d552190-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":40,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.420253,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"2d556fb0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.182087992Z"}]},"request_id":"1e452496-0390-4c54-94ea-150810fbf511","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.440446} 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":"2d552190-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"be35ec6f-a446-4ea7-8336-db3dd6c71872","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.4424846} 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":"2d556fb0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? 200 30ms","method":"GET","requestID":"2d552190-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? 200 30ms","method":"GET","requestID":"2d556fb0-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"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:45964","level":"info","msg":"Received request.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":41,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.329676,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully running experiment"} 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":"2d66d4d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":42,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.369979,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"2d674a00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":43,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.816419,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c032c50c-7d0e-4ac8-815e-dbcd5ba8498e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.5599258} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.182087992Z"}]},"request_id":"b1baf08d-4039-4b97-b839-059871cf4237","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.5619156} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d67e640-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"b2d3b9f3-6170-4a0c-81ee-1cfba0305aa5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.5643766} 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":"2d66d4d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} 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":"2d674a00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bad3890-399a-434c-b6c8-d487c244287e#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bad3890-399a-434c-b6c8-d487c244287e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"ce2c68ba-1de9-4e7f-967c-ab28e7f9db57","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.5756896} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ec2e6cac-36c8-4920-9ddf-0be2d161c6c0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.5762928} device-1 | {"level":"info","message":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling 200 31ms","method":"POST","requestID":"2d67e640-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e5c102155835444d9fb56d2cbe804cd3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? 200 40ms","method":"GET","requestID":"2d66d4d0-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? 200 40ms","method":"GET","requestID":"2d674a00-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"54e36a44-3055-4511-9bd6-3141d9f7edd4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.594024} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":44,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.564831,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d6db2a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/signaling 200 24ms","method":"POST","requestID":"2d6db2a0-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4fce9a77-84b2-43d7-a8b3-77fcf8fd1b4d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6116734} gateway-1 | {"time_local":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.259","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e5c102155835444d9fb56d2cbe804cd3"} experiment-1 | {"level":"info","message":"POST /experiments? 201 251ms","method":"POST","requestID":"e5c102155835444d9fb56d2cbe804cd3","responseTime":251,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":45,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.66323,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d704ab0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c6509222a527ba319002624a2dcdb73c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling 200 17ms","method":"POST","requestID":"2d704ab0-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":46,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.649732,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"c6509222a527ba319002624a2dcdb73c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48f1369a-8119-4319-9cdb-d81e1fd0f354","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6312683} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":47,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.621908,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d7357f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.182087992Z"}]},"request_id":"5780e777-138c-4993-b25c-77299deb4a8d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6395955} device-1 | {"level":"info","message":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/signaling 200 18ms","method":"POST","requestID":"2d7357f0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/signaling"} 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":"c6509222a527ba319002624a2dcdb73c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"2cf49000-4ccd-40b4-be4b-ffc08754aab1"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"215fd692-56c8-473a-a2f9-b4e2dfb80556"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ee8ca272-e2d5-412c-8a96-7471aa6dc417"}]},"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/044af119-4a51-4495-9762-fab592f9cf21"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? 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":"c6509222a527ba319002624a2dcdb73c"} device-1 | {"level":"info","message":"GET /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a? 200 30ms","method":"GET","requestID":"c6509222a527ba319002624a2dcdb73c","responseTime":30,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":48,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.110473,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"2d772880-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f8774bfd23572abf315c30632d24a59d","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":49,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.059832,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415696,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5Nn0.QbMHAJ1D2QyBuLSnoDG18jmOmExwub4DK1axmUsfaJA"} 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":"f8774bfd23572abf315c30632d24a59d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:54.235455373Z"}]},"request_id":"dbaccda7-62f7-4637-b411-dd08cbc02f6c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6740618} 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":"f8774bfd23572abf315c30632d24a59d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8a4cb522-35ff-467c-a9cb-db2d17d175a2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6756063} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7bed6c59-c8c3-4177-a552-1ee48948f287","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.6760023} 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":"2d772880-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:34:56 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f8774bfd23572abf315c30632d24a59d"} device-1 | {"level":"info","message":"GET /devices/044af119-4a51-4495-9762-fab592f9cf21? 200 20ms","method":"GET","requestID":"f8774bfd23572abf315c30632d24a59d","responseTime":20,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21?"} 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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03'"} 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 62ms","method":"POST","requestID":"2d772880-0657-11ef-8390-917b0c22016f","responseTime":62,"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/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f6bb036b-99b3-4008-80be-547741cabf20","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.7619302} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":50,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.636277,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d872e10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling 200 14ms","method":"POST","requestID":"2d872e10-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"096a812b-e3fc-4bc5-8d59-f226ba1a2663","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415696.7743828} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":51,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.2917,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d899f10-0657-11ef-8390-917b0c22016f"},"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/044af119-4a51-4495-9762-fab592f9cf21/signaling 200 10ms","method":"POST","requestID":"2d899f10-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/signaling"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5aa10fa707539ab697f703f34532e240","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/044af119-4a51-4495-9762-fab592f9cf21"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"5aa10fa707539ab697f703f34532e240","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"5aa10fa707539ab697f703f34532e240"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"aea4a744492c68ccae79fca0467b57aa","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/044af119-4a51-4495-9762-fab592f9cf21"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"37974f33-4a47-40f7-97b6-2bd507631b1c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415697.8599002} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":52,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":4.018043,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","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":"2e2f06d0-0657-11ef-8390-917b0c22016f"},"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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03 200 13ms","method":"GET","requestID":"2e2f06d0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"aea4a744492c68ccae79fca0467b57aa","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.050","http_referrer":"","http_user_agent":"node-fetch","requestID":"aea4a744492c68ccae79fca0467b57aa"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1de3ec7e-fbee-4b72-bb79-b87331034da6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415697.8995647} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":53,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.988461,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e34d330-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/signaling 200 17ms","method":"POST","requestID":"2e34d330-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d8f1baff-ade2-4bf0-b5df-41c06641d048","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415697.9189582} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":54,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.050172,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e380780-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling 200 16ms","method":"POST","requestID":"2e380780-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5N30.InSuMiIIGMeG0BuwamtimWNROdEv5P1ljyvjhA6Q3HU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7d8f489550ea9467ce9cba82aac73a5c","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/3bad3890-399a-434c-b6c8-d487c244287e"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":55,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.384151,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415697,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5N30.InSuMiIIGMeG0BuwamtimWNROdEv5P1ljyvjhA6Q3HU"} 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":"7d8f489550ea9467ce9cba82aac73a5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/3bad3890-399a-434c-b6c8-d487c244287e"} gateway-1 | {"time_local":"29/Apr/2024:18:34:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/3bad3890-399a-434c-b6c8-d487c244287e HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.030","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d8f489550ea9467ce9cba82aac73a5c"} experiment-1 | {"level":"info","message":"GET /experiments/3bad3890-399a-434c-b6c8-d487c244287e 200 22ms","method":"GET","requestID":"7d8f489550ea9467ce9cba82aac73a5c","responseTime":22,"status":200,"url":"/experiments/3bad3890-399a-434c-b6c8-d487c244287e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5N30.InSuMiIIGMeG0BuwamtimWNROdEv5P1ljyvjhA6Q3HU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0241a852206e81a836c7d0b105f813b4","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/3bad3890-399a-434c-b6c8-d487c244287e"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":56,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.231312,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415697,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5N30.InSuMiIIGMeG0BuwamtimWNROdEv5P1ljyvjhA6Q3HU"} 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":"0241a852206e81a836c7d0b105f813b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":57,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.122343,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415697,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5N30.InSuMiIIGMeG0BuwamtimWNROdEv5P1ljyvjhA6Q3HU"} 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":"2e430400-0657-11ef-8390-917b0c22016f"},"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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1f71fc025cd91f8509176e246dd4c5a8","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3406aaf974b09ad8f5acdea0c79e5bbf","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe4a5912e-347b-4c2f-a58f-cdd9f6a5ee03': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"fe28e0d2-9258-4594-8fb0-da9cdef04667","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.015815} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c38d3195-1fa6-451b-b530-58c8a015431c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.016119} 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/044af119-4a51-4495-9762-fab592f9cf21"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"}}},"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":"2e430400-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"data":{"peerconnection":"e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03","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/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03 204 66ms","method":"DELETE","requestID":"2e430400-0657-11ef-8390-917b0c22016f","responseTime":66,"status":204,"url":"/peerconnections/e4a5912e-347b-4c2f-a58f-cdd9f6a5ee03"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/3bad3890-399a-434c-b6c8-d487c244287e"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F044af119-4a51-4495-9762-fab592f9cf21","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8196486b-bf6e-423d-b8e0-05d67286dbd0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.086323} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":58,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.978886,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e5134d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/044af119-4a51-4495-9762-fab592f9cf21/signaling 200 18ms","method":"POST","requestID":"2e5134d0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/044af119-4a51-4495-9762-fab592f9cf21/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bad3890-399a-434c-b6c8-d487c244287e': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F3bad3890-399a-434c-b6c8-d487c244287e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"8bcc2fc7-b8d0-43a6-be65-c4efaec5b7f5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.096708} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f8546a81-42e9-4337-bde0-509ec0639050","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.0981572} 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":"0241a852206e81a836c7d0b105f813b4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b702b68-06ce-431e-a36d-e71755b85870","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.1030989} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":59,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.306898,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2e544210-0657-11ef-8390-917b0c22016f"},"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/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling 200 14ms","method":"POST","requestID":"2e544210-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/3bad3890-399a-434c-b6c8-d487c244287e"} gateway-1 | {"time_local":"29/Apr/2024:18:34:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/3bad3890-399a-434c-b6c8-d487c244287e HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.202","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0241a852206e81a836c7d0b105f813b4"} gateway-1 | {"time_local":"29/Apr/2024:18:34:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"3.239","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ff867dcced6486df81adf16cc8a09116"} experiment-1 | {"level":"info","message":"DELETE /experiments/3bad3890-399a-434c-b6c8-d487c244287e 204 199ms","method":"DELETE","requestID":"0241a852206e81a836c7d0b105f813b4","responseTime":199,"status":204,"url":"/experiments/3bad3890-399a-434c-b6c8-d487c244287e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"1f71fc025cd91f8509176e246dd4c5a8","responseTime":151,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.157","http_referrer":"","http_user_agent":"node-fetch","requestID":"1f71fc025cd91f8509176e246dd4c5a8"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6797bf21a4259cc6f50e8ed1567cd766","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:34: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.162","http_referrer":"","http_user_agent":"node-fetch","requestID":"3406aaf974b09ad8f5acdea0c79e5bbf"} gateway-1 | {"time_local":"29/Apr/2024:18:34:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2326","request_time":"1.906","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ee12d1c22b07011f0f5dfa42ecdb7652"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"3406aaf974b09ad8f5acdea0c79e5bbf","responseTime":156,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/044af119-4a51-4495-9762-fab592f9cf21' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":60,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.996527,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415698,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s"} 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":"6797bf21a4259cc6f50e8ed1567cd766"},"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/f946ebd6-5cc5-47a7-8f24-34bcb5fb0a9a' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3aff142a-b7b3-4d00-b870-d76620689bfc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.195571} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6797bf21a4259cc6f50e8ed1567cd766"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3ddf59a7-2416-43a2-b42a-6f79acf3af58","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.2027075} 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":"6797bf21a4259cc6f50e8ed1567cd766"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"2ad8146c-49f6-4a75-9617-82d1afd93d39","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.213181} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d32cf7b3-0300-4f05-a8fd-f3b9fae779a1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.213412} 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":"6797bf21a4259cc6f50e8ed1567cd766"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"7d8a6189-9429-4685-8701-a1eec01e25eb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.2195632} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6797bf21a4259cc6f50e8ed1567cd766"},"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":"29/Apr/2024:18:34: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.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6797bf21a4259cc6f50e8ed1567cd766"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"6797bf21a4259cc6f50e8ed1567cd766","responseTime":53,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"22c3e38ad59e1d43ec140f34e0c8fa9c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":61,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.460788,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415698,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s"} 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":"22c3e38ad59e1d43ec140f34e0c8fa9c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0c02d04b-dd52-4277-a5bd-72d1d598c942","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.249126} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"22c3e38ad59e1d43ec140f34e0c8fa9c"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a427fe75-2a09-4072-8c7c-9f044d58b205","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.2550597} 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":"22c3e38ad59e1d43ec140f34e0c8fa9c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"57adb0e6-8230-4bd2-b5a8-a36da2107de9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.2655551} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"594a0a99-6763-4458-a2e0-6844a8c07453","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.2657187} 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":"22c3e38ad59e1d43ec140f34e0c8fa9c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.265541056Z"}]},"request_id":"85cfa699-926f-4ccb-8b56-835449d59c75","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.270617} 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":"22c3e38ad59e1d43ec140f34e0c8fa9c"},"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":"29/Apr/2024:18:34:58 +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":"22c3e38ad59e1d43ec140f34e0c8fa9c"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"22c3e38ad59e1d43ec140f34e0c8fa9c","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"77b866ee1b8fbd092c2d6dec59c8f67f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":62,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.216529,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415698,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s"} 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":"77b866ee1b8fbd092c2d6dec59c8f67f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"7748c704-15c0-4ac5-a760-bb5af024d9fb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.7668724} 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":"77b866ee1b8fbd092c2d6dec59c8f67f"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"449947e5-9f09-4b06-9c3d-2c8db5f70cc3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.7752087} 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":"77b866ee1b8fbd092c2d6dec59c8f67f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"2bea79b1-84f2-4757-ace1-6e9d5196e607","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415698.7932184} 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":"77b866ee1b8fbd092c2d6dec59c8f67f"},"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/4b8470b7-304c-4ab7-b816-7ecb2deefe15 200 48ms","method":"PATCH","requestID":"77b866ee1b8fbd092c2d6dec59c8f67f","responseTime":48,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"} gateway-1 | {"time_local":"29/Apr/2024:18:34:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"77b866ee1b8fbd092c2d6dec59c8f67f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"571259919b03869919e16d51af2b3916","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":63,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281168,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:34:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415698,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTY5OH0.ACGscpjs7p5A8Unz_kGdU8lnoybN3ZZYp1OQ_zzT70s"} 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":"571259919b03869919e16d51af2b3916"},"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":"29/Apr/2024:18:34:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"571259919b03869919e16d51af2b3916"} device-1 | {"level":"info","message":"POST /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/websocket 200 22ms","method":"POST","requestID":"571259919b03869919e16d51af2b3916","responseTime":22,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c44742abfcd7eae78e03031a2e4c3b38","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/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":"c44742abfcd7eae78e03031a2e4c3b38"} device-1 | {"level":"info","message":"OPTIONS /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/websocket 200 2ms","method":"OPTIONS","requestID":"c44742abfcd7eae78e03031a2e4c3b38","responseTime":2,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"69acfb60d402b224bcf74bae4d99d2f5","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":64,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.180225,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"69acfb60d402b224bcf74bae4d99d2f5"},"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":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/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":"69acfb60d402b224bcf74bae4d99d2f5"} device-1 | {"level":"info","message":"POST /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/websocket 200 32ms","method":"POST","requestID":"69acfb60d402b224bcf74bae4d99d2f5","responseTime":32,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"43ac52c6951f8713ee1efe7008aee291","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":65,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.031915,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"43ac52c6951f8713ee1efe7008aee291"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"a9aba818-17b3-4a3f-b019-089fab93528c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.3400335} 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":"43ac52c6951f8713ee1efe7008aee291"},"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":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"43ac52c6951f8713ee1efe7008aee291"} device-1 | {"level":"info","message":"GET /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15? 200 20ms","method":"GET","requestID":"43ac52c6951f8713ee1efe7008aee291","responseTime":20,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f4bf38fbda68bee7c433e377c5eff721","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":66,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.161563,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"f4bf38fbda68bee7c433e377c5eff721"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.265541056Z"}]},"request_id":"23a2d686-110e-4425-98bb-3d5d8f7b3f66","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.369957} 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":"f4bf38fbda68bee7c433e377c5eff721"},"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":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 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":"f4bf38fbda68bee7c433e377c5eff721"} device-1 | {"level":"info","message":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 200 22ms","method":"GET","requestID":"f4bf38fbda68bee7c433e377c5eff721","responseTime":22,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"78eb8f007b9512d5736bcf823e1a9260","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:45964","level":"info","msg":"Received request.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":67,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.285204,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"78eb8f007b9512d5736bcf823e1a9260"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"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:45964","level":"info","msg":"Received request.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":68,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.107192,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"2fba61c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":69,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.789683,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"2fbaafe0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"b5d664a3-771d-40c5-8aee-7574f38d0112","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.4576392} 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":"2fba61c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.265541056Z"}]},"request_id":"471a78dc-62a2-49ad-b90f-057babeea046","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.4597223} 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":"2fbaafe0-0657-11ef-8390-917b0c22016f"},"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/4b8470b7-304c-4ab7-b816-7ecb2deefe15? 200 22ms","method":"GET","requestID":"2fba61c0-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 200 21ms","method":"GET","requestID":"2fbaafe0-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":70,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.087893,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"2fc5ac60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":71,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.581167,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"2fc5d370-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"310609d6-1552-45e4-9251-7eb0161b5d1b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5361538} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.265541056Z"}]},"request_id":"0b0f936b-2ce0-47a4-880a-5c2bc031e1e3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5379314} 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":"2fc5ac60-0657-11ef-8390-917b0c22016f"},"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:35324","level":"info","msg":"Received request.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} 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":"2fc5d370-0657-11ef-8390-917b0c22016f"},"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:35324","level":"info","msg":"Sent response.","req_id":72,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.346686,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"456676bd-2ae7-49c2-9f43-1bc18662670c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5403223} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15? 200 29ms","method":"GET","requestID":"2fc5ac60-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 200 28ms","method":"GET","requestID":"2fc5d370-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20?"} authorization-1 | {"level":"info","message":"POST /authorize 200 24ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fc62190-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F620f98f2-2bbf-4ef7-823b-d80f57047453#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F620f98f2-2bbf-4ef7-823b-d80f57047453","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8c444ed9-ac90-41fe-943a-764ee5e6a026","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.546273} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b41d5bb-c689-4f08-8796-7b6f9bc31580","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5466027} 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":"78eb8f007b9512d5736bcf823e1a9260"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling 200 31ms","method":"POST","requestID":"2fc62190-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fda78415-f1cb-408c-819a-705217799d74","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5564728} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":73,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.392097,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fca8e60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.182","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78eb8f007b9512d5736bcf823e1a9260"} experiment-1 | {"level":"info","message":"POST /experiments? 201 175ms","method":"POST","requestID":"78eb8f007b9512d5736bcf823e1a9260","responseTime":175,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"POST /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling 200 12ms","method":"POST","requestID":"2fca8e60-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9e10028b-b106-495b-b0b6-4066a8c3c86f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5623868} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":74,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.543776,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fcbc6e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"27c2d92cedb78abf3faf75a0d67d43d9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling 200 11ms","method":"POST","requestID":"2fcbc6e0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c772cae-b4f7-4f54-abc2-c57890ed89ed","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.572329} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":75,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.381703,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fcd2670-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":76,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.01425,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"27c2d92cedb78abf3faf75a0d67d43d9"},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling 200 12ms","method":"POST","requestID":"2fcd2670-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.213168615Z"}]},"request_id":"f0312c28-2e43-4c40-8ec4-94c1a35f7d46","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.5796545} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"c8aaf6c0-af57-4a3d-b385-87d66622d034"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"b52d0883-8b6f-40ae-9ae6-f63858990eaa"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"62c0f37c-0d2c-482b-b964-70080ca0d84e"}]},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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":"27c2d92cedb78abf3faf75a0d67d43d9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":77,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.884839,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"2fcf9770-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"27c2d92cedb78abf3faf75a0d67d43d9"} device-1 | {"level":"info","message":"GET /devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15? 200 19ms","method":"GET","requestID":"27c2d92cedb78abf3faf75a0d67d43d9","responseTime":19,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7c2835cef985dad894e00ba8099e601a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":78,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.939241,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"7c2835cef985dad894e00ba8099e601a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"dcdd6625-10ad-4f43-9af0-331211ff0f92","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.6059475} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2a395788-7207-4135-a1da-87e70d38b410","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.6062462} 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":"2fcf9770-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:34:58.265541056Z"}]},"request_id":"8493a571-1e92-4970-a849-ca2fe96a7851","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.607806} 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":"7c2835cef985dad894e00ba8099e601a"},"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":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 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":"7c2835cef985dad894e00ba8099e601a"} device-1 | {"level":"info","message":"GET /devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20? 200 21ms","method":"GET","requestID":"7c2835cef985dad894e00ba8099e601a","responseTime":21,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20?"} 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/4387c33d-f42e-4b28-94d9-dcec1a74f428'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"2fcf9770-0657-11ef-8390-917b0c22016f","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"687f9178-bff3-4757-b64c-6e696bd97478","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.6660967} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":79,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.445001,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fdb7e50-0657-11ef-8390-917b0c22016f"},"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/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling 200 9ms","method":"POST","requestID":"2fdb7e50-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b109c83-250c-4953-b076-a64c4b5b3014","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.677746} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":80,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.501294,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fdd5310-0657-11ef-8390-917b0c22016f"},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling 200 10ms","method":"POST","requestID":"2fdd5310-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0e04d03c8be99f4d4b226608281d8df4","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/7f8b15a2-390f-45f3-ba55-81972ebd8e20"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"0e04d03c8be99f4d4b226608281d8df4","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"0e04d03c8be99f4d4b226608281d8df4"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","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/4387c33d-f42e-4b28-94d9-dcec1a74f428' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c8841c21c4e16b519f04e1971339e0c0","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/7f8b15a2-390f-45f3-ba55-81972ebd8e20"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4387c33d-f42e-4b28-94d9-dcec1a74f428","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec2c4c57-383f-45df-8d2a-9b25d0c7a17b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.7578368} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":81,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.233565,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fe9af20-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428 200 8ms","method":"GET","requestID":"2fe9af20-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"c8841c21c4e16b519f04e1971339e0c0","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"c8841c21c4e16b519f04e1971339e0c0"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ddc9c92e-f813-4b9a-8528-28576320f48c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.782358} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":82,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.392072,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fed58a0-0657-11ef-8390-917b0c22016f"},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling 200 9ms","method":"POST","requestID":"2fed58a0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a544d269-b5f0-4d5d-9e27-bfc66666e36e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.7936695} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":83,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.139287,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2fef0650-0657-11ef-8390-917b0c22016f"},"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/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling 200 9ms","method":"POST","requestID":"2fef0650-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c602081e163a15a877ab6e185ee3e8d7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":84,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.990384,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"c602081e163a15a877ab6e185ee3e8d7"},"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/620f98f2-2bbf-4ef7-823b-d80f57047453"} gateway-1 | {"time_local":"29/Apr/2024:18:35:00 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453 HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c602081e163a15a877ab6e185ee3e8d7"} experiment-1 | {"level":"info","message":"GET /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453 200 17ms","method":"GET","requestID":"c602081e163a15a877ab6e185ee3e8d7","responseTime":17,"status":200,"url":"/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bb635dc41b6b491a70b33d5ff90109f1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":85,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.086172,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"bb635dc41b6b491a70b33d5ff90109f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":86,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.123659,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415700,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMH0.nMdOReGrHYnR_f6kDdMaHlBxM8ebEuOqpxp5uXdWeGg"} 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":"2ffc4cc0-0657-11ef-8390-917b0c22016f"},"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/4387c33d-f42e-4b28-94d9-dcec1a74f428' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4387c33d-f42e-4b28-94d9-dcec1a74f428","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4387c33d-f42e-4b28-94d9-dcec1a74f428': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4387c33d-f42e-4b28-94d9-dcec1a74f428","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"5f188022-ae0c-41f3-86a3-84deda600da8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.894175} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b3390b29-1a55-4621-b783-1aa98c710738","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.8945115} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d5accb10135de02a5c0db0c98a0b53f9","responseTime":1,"status":200,"url":"/auth"} 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":"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":"2ffc4cc0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"0071ceca1410b7d5ed8a93c88a9d9aca","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/7f8b15a2-390f-45f3-ba55-81972ebd8e20"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"}}},"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":"connected","url":"http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428 204 46ms","method":"DELETE","requestID":"2ffc4cc0-0657-11ef-8390-917b0c22016f","responseTime":46,"status":204,"url":"/peerconnections/4387c33d-f42e-4b28-94d9-dcec1a74f428"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f8b15a2-390f-45f3-ba55-81972ebd8e20","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"430af71c-2196-4f20-b3a7-1e478bd7db5f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.95256} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":87,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.938956,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3006d410-0657-11ef-8390-917b0c22016f"},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling 200 16ms","method":"POST","requestID":"3006d410-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/7f8b15a2-390f-45f3-ba55-81972ebd8e20/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F620f98f2-2bbf-4ef7-823b-d80f57047453': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F620f98f2-2bbf-4ef7-823b-d80f57047453","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"ace97e2c-81bb-48bc-b49d-e4acb8cd5404","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.96124} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c4726f01-9ed4-4555-b0dc-06ffbbea51f3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.9618392} 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":"bb635dc41b6b491a70b33d5ff90109f1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4b8470b7-304c-4ab7-b816-7ecb2deefe15","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4a15cba-5777-42c8-8cbd-cbb233f9128d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415700.9728777} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":88,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.686444,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:00Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"300a0860-0657-11ef-8390-917b0c22016f"},"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/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling 200 15ms","method":"POST","requestID":"300a0860-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453 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":"bb635dc41b6b491a70b33d5ff90109f1"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2013","request_time":"2.206","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"dd76a67d82eb438b9b80c20a3f2eb1a1"} experiment-1 | {"level":"info","message":"DELETE /experiments/620f98f2-2bbf-4ef7-823b-d80f57047453 204 176ms","method":"DELETE","requestID":"bb635dc41b6b491a70b33d5ff90109f1","responseTime":176,"status":204,"url":"/experiments/620f98f2-2bbf-4ef7-823b-d80f57047453"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"d5accb10135de02a5c0db0c98a0b53f9","responseTime":142,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7c226d08268ce493388690a41c39207a","responseTime":3,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"d5accb10135de02a5c0db0c98a0b53f9"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"0071ceca1410b7d5ed8a93c88a9d9aca","responseTime":146,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2331","request_time":"0.740","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0a24cbd4a9b1bfb9f2ef5bf11a45fe36"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"0071ceca1410b7d5ed8a93c88a9d9aca"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/4b8470b7-304c-4ab7-b816-7ecb2deefe15' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":89,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.106561,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"7c226d08268ce493388690a41c39207a"},"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/7f8b15a2-390f-45f3-ba55-81972ebd8e20' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"2290fea4-b7a8-453c-a54b-ec6a51928c1b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.0699673} 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":"7c226d08268ce493388690a41c39207a"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f735a7e-b848-4d5a-aadf-74add91696b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.0753608} 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":"7c226d08268ce493388690a41c39207a"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6c4c7829-ebb0-4bb8-b606-aef054e125ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.084043} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"60bdf2e0-edae-4f12-8168-b8b1009a0ebe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.084102} 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":"7c226d08268ce493388690a41c39207a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"ba450d24-cb07-45ed-a6ae-a2326455ed55","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.0892305} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7c226d08268ce493388690a41c39207a"},"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":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.057","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7c226d08268ce493388690a41c39207a"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"7c226d08268ce493388690a41c39207a","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ac1f6ee8474f12253d1be031610ca4e9","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":90,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.938176,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"ac1f6ee8474f12253d1be031610ca4e9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"b370575a-7b25-463b-83e5-93f338977e0c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.1162398} 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":"ac1f6ee8474f12253d1be031610ca4e9"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2d0fc90-f79d-4989-827b-50a4f8f44e13","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.1240242} 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":"ac1f6ee8474f12253d1be031610ca4e9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"23cad787-f2ce-40bc-8c00-094ab69bd5de","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.1375906} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b5a750b-d4e8-428f-b051-d4e6e85362f1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.1377494} 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":"ac1f6ee8474f12253d1be031610ca4e9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"5f4ebc1b-2068-4686-b714-2e34c3ffdd0d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.1426773} 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":"ac1f6ee8474f12253d1be031610ca4e9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"ac1f6ee8474f12253d1be031610ca4e9","responseTime":48,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +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":"ac1f6ee8474f12253d1be031610ca4e9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"38ff2e99b1e58488c63134dd50887de2","responseTime":7,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"87715de0126f413313bd7eb3bc7ef141","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":91,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.804802,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"38ff2e99b1e58488c63134dd50887de2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":92,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.916563,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"87715de0126f413313bd7eb3bc7ef141"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"ede8c034-8931-49cb-9843-9c7c7704c90a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.6338694} 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":"38ff2e99b1e58488c63134dd50887de2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"6ee26454-af86-4580-8cda-305ba8b5dbcf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.635454} 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":"87715de0126f413313bd7eb3bc7ef141"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9c45c3d-aaf8-4931-87b7-064f59d3abbe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.6410105} 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":"38ff2e99b1e58488c63134dd50887de2"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92863ea8-78b8-4cd8-aae5-3214189e3946","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.642447} 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":"87715de0126f413313bd7eb3bc7ef141"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"fb438756-365a-405f-bc3a-5ae4035d448f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.647168} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87715de0126f413313bd7eb3bc7ef141"},"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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf 200 31ms","method":"PATCH","requestID":"87715de0126f413313bd7eb3bc7ef141","responseTime":31,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.041","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"87715de0126f413313bd7eb3bc7ef141"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5b678ab6cdb66335d16a43f61c2ee504","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":93,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.72468,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"5b678ab6cdb66335d16a43f61c2ee504"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"9e0dc5c7-b717-4fdb-8b82-c6163de7d6a4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.6642604} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38ff2e99b1e58488c63134dd50887de2"},"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":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/33559b84-e0b6-4b4e-8096-08faa4697700 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.059","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"38ff2e99b1e58488c63134dd50887de2"} device-1 | {"level":"info","message":"PATCH /devices/33559b84-e0b6-4b4e-8096-08faa4697700 200 50ms","method":"PATCH","requestID":"38ff2e99b1e58488c63134dd50887de2","responseTime":50,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"be7782fa799459a5989a14c4716e959d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5b678ab6cdb66335d16a43f61c2ee504"} device-1 | {"level":"info","message":"POST /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/websocket 200 17ms","method":"POST","requestID":"5b678ab6cdb66335d16a43f61c2ee504","responseTime":17,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":94,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.635321,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"be7782fa799459a5989a14c4716e959d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"device 'http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/33559b84-e0b6-4b4e-8096-08faa4697700/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"be7782fa799459a5989a14c4716e959d"} device-1 | {"level":"info","message":"POST /devices/33559b84-e0b6-4b4e-8096-08faa4697700/websocket 200 20ms","method":"POST","requestID":"be7782fa799459a5989a14c4716e959d","responseTime":20,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d79fa9a0384472f7dc724255a016df0a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":95,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.00381,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"d79fa9a0384472f7dc724255a016df0a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"558a8bd9-e3bc-43ba-b930-d153ebcfc292","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.7223895} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d79fa9a0384472f7dc724255a016df0a"},"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":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d79fa9a0384472f7dc724255a016df0a"} device-1 | {"level":"info","message":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? 200 14ms","method":"GET","requestID":"d79fa9a0384472f7dc724255a016df0a","responseTime":14,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fda8b3ec91c7f03afdb0fb1c7992e4b7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":96,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.647092,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"fda8b3ec91c7f03afdb0fb1c7992e4b7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"53c3799f-6a10-4ccb-98cc-4a7719f125b4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.7422717} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fda8b3ec91c7f03afdb0fb1c7992e4b7"},"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":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fda8b3ec91c7f03afdb0fb1c7992e4b7"} device-1 | {"level":"info","message":"GET /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? 200 15ms","method":"GET","requestID":"fda8b3ec91c7f03afdb0fb1c7992e4b7","responseTime":15,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6277961789e9a3626cd41ec3c6162e11","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:45964","level":"info","msg":"Received request.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":97,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.909727,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"6277961789e9a3626cd41ec3c6162e11"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"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:45964","level":"info","msg":"Received request.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":98,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.503831,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"308bbb80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":99,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678585,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"308be290-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"51c6f05a-5f70-453d-8814-de71a4c0eb11","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.8251002} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"308bbb80-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"ac3509d6-964a-4b59-b4db-dc4da61f58c2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.8260403} 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":"308be290-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to lock booking for experiment"} device-1 | {"level":"info","message":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? 200 18ms","method":"GET","requestID":"308bbb80-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? 200 18ms","method":"GET","requestID":"308be290-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":100,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.159531,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"309690f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":101,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.586952,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"3096df10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":102,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.625726,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"54f5f335-6c64-4985-865d-39206998e35b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9028718} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30975440-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"8c0a6d0c-c04b-47bd-9303-e4c71d660988","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.908107} device-1 | {"level":"info","message":"POST /devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling 200 22ms","method":"POST","requestID":"30975440-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"309690f0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"7fdd2964-af97-4d43-8162-3f351a710a94","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9134636} 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":"3096df10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb6531088-3d17-4f9e-b167-409865929359#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb6531088-3d17-4f9e-b167-409865929359","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f9d1b28b-087d-4d47-8ddb-37523099e6db","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9213154} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2e3a52bb-070a-4d50-9d9e-5c421e34aee4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.921741} device-1 | {"level":"info","message":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? 200 35ms","method":"GET","requestID":"309690f0-0657-11ef-8390-917b0c22016f","responseTime":35,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700?"} 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":"6277961789e9a3626cd41ec3c6162e11"},"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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? 200 35ms","method":"GET","requestID":"3096df10-0657-11ef-8390-917b0c22016f","responseTime":35,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a736868e-bbec-4bb5-92f3-302a7a87ca4a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9268355} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":103,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.442185,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"309bc110-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling 200 12ms","method":"POST","requestID":"309bc110-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"815","request_time":"0.184","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6277961789e9a3626cd41ec3c6162e11"} experiment-1 | {"level":"info","message":"POST /experiments? 201 179ms","method":"POST","requestID":"6277961789e9a3626cd41ec3c6162e11","responseTime":179,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b864b65c-2997-4589-a90f-5d0f668bb3a4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9359841} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":104,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.470512,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"309d47b0-0657-11ef-8390-917b0c22016f"},"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/33559b84-e0b6-4b4e-8096-08faa4697700/signaling 200 10ms","method":"POST","requestID":"309d47b0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b5574350f1139fd8b6c16d7f344c7117","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60370396-994d-441a-b36c-80b603422067","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9478855} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":106,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.853573,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"b5574350f1139fd8b6c16d7f344c7117"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":105,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.306694,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"309f1c70-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.084087950Z"}]},"request_id":"d6317697-5730-48a8-9a23-3f1750eb4eb2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.954132} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling 200 11ms","method":"POST","requestID":"309f1c70-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b5574350f1139fd8b6c16d7f344c7117"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"df1bbf05-2730-4505-a93a-2c932e915475"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"1167aa42-e698-493a-9b80-20d467de5153"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"eccfdef9-8b56-4cfe-b791-3310b37507d8"}]},"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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b5574350f1139fd8b6c16d7f344c7117"} device-1 | {"level":"info","message":"GET /devices/33559b84-e0b6-4b4e-8096-08faa4697700? 200 14ms","method":"GET","requestID":"b5574350f1139fd8b6c16d7f344c7117","responseTime":14,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":107,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.689533,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"30a13f50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"be9f545cd86f88be790065980a9ebe4e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":108,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.726771,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415701,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMX0.nrHwnhs8DFIqGJIYbMJTa2-_pyu7bs6Ea7z7SEl9zGc"} 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":"be9f545cd86f88be790065980a9ebe4e"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:01.137570493Z"}]},"request_id":"b09b7055-3b6a-4d13-9e54-99f412c4e938","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9722836} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be9f545cd86f88be790065980a9ebe4e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"6dc114db-771b-424b-b05d-8714afed81a5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9734662} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c96d6555-8267-4ee2-98db-e7b9d6de63e7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415701.9737399} 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":"30a13f50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be9f545cd86f88be790065980a9ebe4e"} device-1 | {"level":"info","message":"GET /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf? 200 13ms","method":"GET","requestID":"be9f545cd86f88be790065980a9ebe4e","responseTime":13,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf?"} 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/55fa2f9c-e030-4739-bb64-e621b3441165'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165'"} 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":"30a13f50-0657-11ef-8390-917b0c22016f","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c20bdb86-54f9-4c5d-a2b7-3e319d050512","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.032154} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":109,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.253391,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30abedb0-0657-11ef-8390-917b0c22016f"},"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/55fa2f9c-e030-4739-bb64-e621b3441165' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"515247db5b514ec1542906d01e93c540","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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling 200 15ms","method":"POST","requestID":"30abedb0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"515247db5b514ec1542906d01e93c540","responseTime":9,"status":200,"url":"/callbacks/experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"515247db5b514ec1542906d01e93c540"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec719074-fd50-49c8-96ef-4e9cd34ecff1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.0514097} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":110,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.639783,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30aeacd0-0657-11ef-8390-917b0c22016f"},"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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling 200 18ms","method":"POST","requestID":"30aeacd0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","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/55fa2f9c-e030-4739-bb64-e621b3441165' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ed8e1e01ee5cfab618a54f37753a7d97","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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F55fa2f9c-e030-4739-bb64-e621b3441165","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"43b48958-88bd-4c37-96a8-c93a12387f82","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.0944247} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":111,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.4778,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165","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":"30b56390-0657-11ef-8390-917b0c22016f"},"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/55fa2f9c-e030-4739-bb64-e621b3441165 200 9ms","method":"GET","requestID":"30b56390-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"ed8e1e01ee5cfab618a54f37753a7d97","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"ed8e1e01ee5cfab618a54f37753a7d97"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b5c3d34-1cca-4423-b347-084411b0deb0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.1196907} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":112,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.929985,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30b93420-0657-11ef-8390-917b0c22016f"},"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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling 200 14ms","method":"POST","requestID":"30b93420-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3c409bbd-9e53-4b64-80a0-4b4d2e0d8559","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.1361606} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":113,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.073908,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30bba520-0657-11ef-8390-917b0c22016f"},"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/33559b84-e0b6-4b4e-8096-08faa4697700/signaling 200 13ms","method":"POST","requestID":"30bba520-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b129c433a652a2530d765e5c792950c7","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/b6531088-3d17-4f9e-b167-409865929359"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":114,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.232986,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"b129c433a652a2530d765e5c792950c7"},"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/b6531088-3d17-4f9e-b167-409865929359"} gateway-1 | {"time_local":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/b6531088-3d17-4f9e-b167-409865929359 HTTP/1.1","status": "200","body_bytes_sent":"888","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b129c433a652a2530d765e5c792950c7"} experiment-1 | {"level":"info","message":"GET /experiments/b6531088-3d17-4f9e-b167-409865929359 200 20ms","method":"GET","requestID":"b129c433a652a2530d765e5c792950c7","responseTime":20,"status":200,"url":"/experiments/b6531088-3d17-4f9e-b167-409865929359"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c350263a404e9136c325b3b9564d2718","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/b6531088-3d17-4f9e-b167-409865929359"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":115,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.191903,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"c350263a404e9136c325b3b9564d2718"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":116,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.447778,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"462","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30ca4b20-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4029b48558174774db0511fc658e3f27","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F55fa2f9c-e030-4739-bb64-e621b3441165': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F55fa2f9c-e030-4739-bb64-e621b3441165","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"7d7e00d2-0901-43f3-8913-a764884c5e00","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.2579274} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7fac8315-128e-42f0-925b-059b9a130c1e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.258491} 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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c7f25c01e70fba0e04560f3fb86bda69","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/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30ca4b20-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"55fa2f9c-e030-4739-bb64-e621b3441165","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/55fa2f9c-e030-4739-bb64-e621b3441165 204 65ms","method":"DELETE","requestID":"30ca4b20-0657-11ef-8390-917b0c22016f","responseTime":65,"status":204,"url":"/peerconnections/55fa2f9c-e030-4739-bb64-e621b3441165"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/b6531088-3d17-4f9e-b167-409865929359"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d2d0b2aa-2354-4c78-98a9-66ae686e1780","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.3248608} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":117,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.436059,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30d82dd0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb6531088-3d17-4f9e-b167-409865929359': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fb6531088-3d17-4f9e-b167-409865929359","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"21301f51-7e3f-431d-a6c7-932617942367","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.3356075} device-1 | {"level":"info","message":"POST /devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling 200 18ms","method":"POST","requestID":"30d82dd0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"97682b78-e2c2-40d7-b9fa-112ca6f5392f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.336285} 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":"c350263a404e9136c325b3b9564d2718"},"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:45964","level":"info","msg":"Received request.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F33559b84-e0b6-4b4e-8096-08faa4697700","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"90d6c88e-f837-4116-bba9-9c70149f9133","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.3475225} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":118,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.294785,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/33559b84-e0b6-4b4e-8096-08faa4697700","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"30db8930-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling 200 17ms","method":"POST","requestID":"30db8930-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/33559b84-e0b6-4b4e-8096-08faa4697700/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/b6531088-3d17-4f9e-b167-409865929359"} gateway-1 | {"time_local":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/b6531088-3d17-4f9e-b167-409865929359 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.206","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c350263a404e9136c325b3b9564d2718"} gateway-1 | {"time_local":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2331","request_time":"0.712","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0c790e7a9d3b4c5b456a215ca58723c5"} gateway-1 | {"time_local":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2331","request_time":"0.733","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1555b3cb2b0fd9d514634cd1104fa7d3"} experiment-1 | {"level":"info","message":"DELETE /experiments/b6531088-3d17-4f9e-b167-409865929359 204 202ms","method":"DELETE","requestID":"c350263a404e9136c325b3b9564d2718","responseTime":202,"status":204,"url":"/experiments/b6531088-3d17-4f9e-b167-409865929359"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 153ms","method":"POST","requestID":"4029b48558174774db0511fc658e3f27","responseTime":153,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.158","http_referrer":"","http_user_agent":"node-fetch","requestID":"4029b48558174774db0511fc658e3f27"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"c7f25c01e70fba0e04560f3fb86bda69","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.159","http_referrer":"","http_user_agent":"node-fetch","requestID":"c7f25c01e70fba0e04560f3fb86bda69"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9f30697cc980729d3ab3fe2d56dc642c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/0fcce4c9-a4f8-4c7b-bbf3-4bca7c6058cf' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":119,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.122135,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"9f30697cc980729d3ab3fe2d56dc642c"},"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/33559b84-e0b6-4b4e-8096-08faa4697700' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5507d08a-96e7-44a7-930b-da2e39185d8d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"c1a45564-6c62-4d66-ba54-07ebf6ee2321","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.440028} 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":"9f30697cc980729d3ab3fe2d56dc642c"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"640493d8-3e11-440c-a4dc-fc0812846624","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4477036} 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":"9f30697cc980729d3ab3fe2d56dc642c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5507d08a-96e7-44a7-930b-da2e39185d8d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"920e01d0-a655-4eb0-8681-b1e6acb50054","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4590185} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff2ec575-9106-4653-a360-5a0d8711d05f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4592881} 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":"9f30697cc980729d3ab3fe2d56dc642c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5507d08a-96e7-44a7-930b-da2e39185d8d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F5507d08a-96e7-44a7-930b-da2e39185d8d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.459002764Z"}]},"request_id":"dfb4a87e-f479-4ef6-9119-796ce9edc202","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4655092} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9f30697cc980729d3ab3fe2d56dc642c"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9f30697cc980729d3ab3fe2d56dc642c"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"9f30697cc980729d3ab3fe2d56dc642c","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e70a4ae3a3628139305e53773f86dd26","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":120,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.734323,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"e70a4ae3a3628139305e53773f86dd26"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3f265a0-a6c6-44f8-aa7f-af6b06db88b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"41a921bd-828e-42b6-9dc9-17942f9ce602","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4929552} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e70a4ae3a3628139305e53773f86dd26"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bbb5c7bb-c07c-48f4-9d90-483fcf2f8c7f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.4989886} 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":"e70a4ae3a3628139305e53773f86dd26"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3f265a0-a6c6-44f8-aa7f-af6b06db88b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"3c8a966e-ad36-43b8-872d-1ac5eb1f4e71","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5093865} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e5a3b583-6d02-4a38-a3d1-5f5c61b32fd3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5095265} 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":"e70a4ae3a3628139305e53773f86dd26"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3f265a0-a6c6-44f8-aa7f-af6b06db88b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc3f265a0-a6c6-44f8-aa7f-af6b06db88b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.509374134Z"}]},"request_id":"dbb588d8-de19-4d02-adfc-fe22d06e61ee","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5155065} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e70a4ae3a3628139305e53773f86dd26"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e70a4ae3a3628139305e53773f86dd26"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"e70a4ae3a3628139305e53773f86dd26","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c1f83065648d61f1fb75ea1f8736cb9d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":121,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.788431,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"c1f83065648d61f1fb75ea1f8736cb9d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdaf8695e-b4be-4f80-a4e0-3e9e01e69aaf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1c853f57-3b6c-4567-a8d9-4341f596fc2e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5447617} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1f83065648d61f1fb75ea1f8736cb9d"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9bd6ab12-0531-48b1-bc6a-f1d58a152ed7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5496602} 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":"c1f83065648d61f1fb75ea1f8736cb9d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdaf8695e-b4be-4f80-a4e0-3e9e01e69aaf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e95d051e-24ac-4390-9b2b-1de7ab1db9dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5611928} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8588728a-fcc7-4f96-887b-57dce1bc1cd3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5612276} 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":"c1f83065648d61f1fb75ea1f8736cb9d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdaf8695e-b4be-4f80-a4e0-3e9e01e69aaf","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdaf8695e-b4be-4f80-a4e0-3e9e01e69aaf","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.561172151Z"}]},"request_id":"204a34f9-46a7-4eb5-a59c-1bb4f8c34d1c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.566476} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c1f83065648d61f1fb75ea1f8736cb9d"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c1f83065648d61f1fb75ea1f8736cb9d"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"c1f83065648d61f1fb75ea1f8736cb9d","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"771a37bec73701745982c171d8c50b38","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":122,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.103112,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"771a37bec73701745982c171d8c50b38"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F80430749-2a27-4d67-a5ae-92b430ec4a95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f5a6cd9d-fb4f-4048-9db7-917ba645bde9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.5975838} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"771a37bec73701745982c171d8c50b38"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f4c267f-a548-4eb0-843f-03d3865e60e4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6038616} 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":"771a37bec73701745982c171d8c50b38"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F80430749-2a27-4d67-a5ae-92b430ec4a95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0b1ef7b1-84ac-4fe0-a353-4ffa01d267e9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6145887} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c0106e5-9b4c-4c79-b410-5fd5fcc5b2e2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6150012} 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":"771a37bec73701745982c171d8c50b38"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F80430749-2a27-4d67-a5ae-92b430ec4a95","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F80430749-2a27-4d67-a5ae-92b430ec4a95","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.614550357Z"}]},"request_id":"869b3521-37c8-4e44-af58-0bc9de51c86c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6219327} 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":"771a37bec73701745982c171d8c50b38"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"771a37bec73701745982c171d8c50b38"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"771a37bec73701745982c171d8c50b38","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c9251e5fbc11cb254a2ad0bad074cdeb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":123,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.252379,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"c9251e5fbc11cb254a2ad0bad074cdeb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc569b40a-f379-43dc-af22-c5e4a103e8f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ce65fbca-2394-42e9-8b60-497e277015b1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6568506} 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":"c9251e5fbc11cb254a2ad0bad074cdeb"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"202adb68-6bf6-49a7-86d3-897e059a5a8a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6640258} 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":"c9251e5fbc11cb254a2ad0bad074cdeb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc569b40a-f379-43dc-af22-c5e4a103e8f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c7ed7bb6-6206-4e3f-a1fb-5e26a1a3104c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6786165} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"477b0c53-3b60-4cfd-869d-57ace180cfb1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6787133} 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":"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":"c9251e5fbc11cb254a2ad0bad074cdeb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc569b40a-f379-43dc-af22-c5e4a103e8f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc569b40a-f379-43dc-af22-c5e4a103e8f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.678598981Z"}]},"request_id":"2a001557-dfcc-4411-b2bb-4632cd958fbf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.6883805} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c9251e5fbc11cb254a2ad0bad074cdeb"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c9251e5fbc11cb254a2ad0bad074cdeb"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"c9251e5fbc11cb254a2ad0bad074cdeb","responseTime":58,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f35411081408fb5052853d0033371540","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":124,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.295268,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"f35411081408fb5052853d0033371540"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57530aa1-80dc-4405-a6f5-0f0b88a2ee02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9bf423f7-7f6c-4cc0-bc8a-e8dd94d30570","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7140162} 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":"f35411081408fb5052853d0033371540"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"449dbf7f-3fd7-47f9-a45b-bd9b6961011e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7197182} 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":"f35411081408fb5052853d0033371540"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57530aa1-80dc-4405-a6f5-0f0b88a2ee02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"ed46768d-b36a-47be-9d0e-22eb4963c21a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7300742} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8b86c85d-ca44-4f4a-8150-6edede2534e2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7301311} 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":"f35411081408fb5052853d0033371540"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57530aa1-80dc-4405-a6f5-0f0b88a2ee02","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F57530aa1-80dc-4405-a6f5-0f0b88a2ee02","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.730061416Z"}]},"request_id":"1e639aad-adae-404e-b993-a4f10928295b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7351408} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f35411081408fb5052853d0033371540"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"f35411081408fb5052853d0033371540","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f35411081408fb5052853d0033371540"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4b35f16b3102f4c629b955edc5f75215","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":125,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.951861,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"4b35f16b3102f4c629b955edc5f75215"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2167cc6-1227-438e-b78e-f3ec8f0a1a84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"54ff3bbc-6458-49a5-ac83-92edad35780a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7645257} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b35f16b3102f4c629b955edc5f75215"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4ea49aec-22ae-42d6-82ec-7fbbde20e49f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7702906} 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":"4b35f16b3102f4c629b955edc5f75215"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2167cc6-1227-438e-b78e-f3ec8f0a1a84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c87c6e99-af45-4e79-82a4-5412a3de231e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7838087} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8100e802-bba2-45ca-b626-c186e76e8426","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7851884} 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":"4b35f16b3102f4c629b955edc5f75215"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2167cc6-1227-438e-b78e-f3ec8f0a1a84","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe2167cc6-1227-438e-b78e-f3ec8f0a1a84","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.783786611Z"}]},"request_id":"348fd917-206c-47f0-be3d-5891437567a2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.7911913} 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":"4b35f16b3102f4c629b955edc5f75215"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4b35f16b3102f4c629b955edc5f75215"} device-1 | {"level":"info","message":"POST /devices? 201 48ms","method":"POST","requestID":"4b35f16b3102f4c629b955edc5f75215","responseTime":48,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ed2489c8c83b1b36c6a215200074e723","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":126,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.267727,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"ed2489c8c83b1b36c6a215200074e723"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff28bd819-1872-4443-a878-a01600002fd6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0ccfed26-6943-42ac-bf33-de6d4a2e5501","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.822641} 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":"ed2489c8c83b1b36c6a215200074e723"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"694b2b11-d703-4a18-bc57-e5fd337aab9d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.8288624} 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":"ed2489c8c83b1b36c6a215200074e723"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff28bd819-1872-4443-a878-a01600002fd6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e8735730-9649-4141-9fbe-cb0dff936d85","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.8412945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1a00451a-aa9d-41b7-adf2-cf64a257694b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.8416061} 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":"ed2489c8c83b1b36c6a215200074e723"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff28bd819-1872-4443-a878-a01600002fd6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff28bd819-1872-4443-a878-a01600002fd6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.841272656Z"}]},"request_id":"7b4f39f7-f0bb-4f8b-b0bb-7ea6c8d0fcfd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.8485055} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed2489c8c83b1b36c6a215200074e723"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed2489c8c83b1b36c6a215200074e723"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"ed2489c8c83b1b36c6a215200074e723","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3efe8306f21c50edddf5ffae62053fc7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":127,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.162497,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"3efe8306f21c50edddf5ffae62053fc7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d4c9d33-9176-4307-b041-3a4115cecf4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0c1b8830-6c61-42fc-8c80-028ac2c7c362","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.8824985} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3efe8306f21c50edddf5ffae62053fc7"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4b4ba033-b56b-4fee-84fb-b53032741e50","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.890547} 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":"3efe8306f21c50edddf5ffae62053fc7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d4c9d33-9176-4307-b041-3a4115cecf4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"3787d567-e0ea-41c2-9d7e-0101c2c7d511","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.903441} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99f2afa7-455f-425f-a0f5-8e8ecd5da394","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9038908} 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":"3efe8306f21c50edddf5ffae62053fc7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d4c9d33-9176-4307-b041-3a4115cecf4c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F1d4c9d33-9176-4307-b041-3a4115cecf4c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.903417750Z"}]},"request_id":"0834d857-b61c-4b29-8b15-6811bc97c72f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9116673} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3efe8306f21c50edddf5ffae62053fc7"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"277","request_time":"0.061","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3efe8306f21c50edddf5ffae62053fc7"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"3efe8306f21c50edddf5ffae62053fc7","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dd8212e708a1163dd687ca7192682d9c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":128,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.192317,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"dd8212e708a1163dd687ca7192682d9c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb4a2846-2976-4b37-afd5-7cb8838e3304","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"40293e2c-1865-4d68-a428-bcff481c341a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9494436} 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":"dd8212e708a1163dd687ca7192682d9c"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fab8195a-ccf8-4abd-b614-ab9d70caab9f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.957539} 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":"dd8212e708a1163dd687ca7192682d9c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb4a2846-2976-4b37-afd5-7cb8838e3304","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"20fe6491-6f1e-47b4-9318-0442db8e2042","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9701467} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"93951c32-2874-4bff-9234-cdcc596d6624","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9704087} 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":"dd8212e708a1163dd687ca7192682d9c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb4a2846-2976-4b37-afd5-7cb8838e3304","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fdb4a2846-2976-4b37-afd5-7cb8838e3304","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:02.970114244Z"}]},"request_id":"f81dbc91-9962-4599-9d85-c0c30732030d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415702.9779408} 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":"dd8212e708a1163dd687ca7192682d9c"},"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":"29/Apr/2024:18:35:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"278","request_time":"0.065","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dd8212e708a1163dd687ca7192682d9c"} device-1 | {"level":"info","message":"POST /devices? 201 58ms","method":"POST","requestID":"dd8212e708a1163dd687ca7192682d9c","responseTime":58,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9e6ae12abf8b6fdd8f97831ead5ac46d","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":129,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.205394,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:02Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415702,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwMn0.KIwcVrzGLCn1wkmABoEdEabSJAWfm9Ksu35CWm9XT38"} 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":"9e6ae12abf8b6fdd8f97831ead5ac46d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bf807b11-2c03-4a0c-abe0-0fdfe5955781","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.0178158} 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":"9e6ae12abf8b6fdd8f97831ead5ac46d"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d43cf7b8-835e-4fa7-8391-0de14db35b7e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.0257442} 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":"9e6ae12abf8b6fdd8f97831ead5ac46d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"637ecb77-91c3-44cc-bd9b-41d4d213e186","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.03583} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bd871082-3698-47b0-b681-50a070634c8c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.036029} 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":"9e6ae12abf8b6fdd8f97831ead5ac46d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.035803975Z"}]},"request_id":"fd95dd8e-0b87-47e2-a298-012d222d502b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.042913} 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":"9e6ae12abf8b6fdd8f97831ead5ac46d"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1069","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9e6ae12abf8b6fdd8f97831ead5ac46d"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"9e6ae12abf8b6fdd8f97831ead5ac46d","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3d77ce48afdb3d78ef3acc96fb78ac10","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":130,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.191232,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"3d77ce48afdb3d78ef3acc96fb78ac10"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"217937a0-621f-4b36-9483-bf7278d5d6b7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.079736} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d77ce48afdb3d78ef3acc96fb78ac10"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"90c53e9a-294d-40df-b093-041a187e9d6a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.0886436} 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":"3d77ce48afdb3d78ef3acc96fb78ac10"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e6141d0b-4750-42e9-a84b-ee8e3f9e3c7d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1030595} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9abcc53f-4824-4efc-9236-d8f64d5c4bcd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1035693} 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":"3d77ce48afdb3d78ef3acc96fb78ac10"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.103028184Z"}]},"request_id":"a9e4d241-a625-4e31-935d-17995730e5dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1107593} 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":"3d77ce48afdb3d78ef3acc96fb78ac10"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1347","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3d77ce48afdb3d78ef3acc96fb78ac10"} device-1 | {"level":"info","message":"POST /devices? 201 57ms","method":"POST","requestID":"3d77ce48afdb3d78ef3acc96fb78ac10","responseTime":57,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"bbc3c86fbb27cb8e4094b088ed36d7ff","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":131,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":2.653794,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"bbc3c86fbb27cb8e4094b088ed36d7ff"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"5f2b9d53-853f-45b6-9b95-b6a00d68bb4d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1487913} 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":"bbc3c86fbb27cb8e4094b088ed36d7ff"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eaad08ba-b27d-4a6c-8d3e-176752c12ccb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1563628} 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":"bbc3c86fbb27cb8e4094b088ed36d7ff"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"796fc551-48bf-43ee-b22d-63aaa8a214b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1678483} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78613461-5b95-40c0-a3da-5e3ae52a51dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1681364} 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":"bbc3c86fbb27cb8e4094b088ed36d7ff"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.167823706Z"}]},"request_id":"c0b1338b-0fc3-4c3d-939e-e511dd45d27c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.1755855} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bbc3c86fbb27cb8e4094b088ed36d7ff"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"1070","request_time":"0.062","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bbc3c86fbb27cb8e4094b088ed36d7ff"} device-1 | {"level":"info","message":"POST /devices? 201 55ms","method":"POST","requestID":"bbc3c86fbb27cb8e4094b088ed36d7ff","responseTime":55,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f093aaa791cbebb55a649192d32e3128","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":132,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.136986,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"f093aaa791cbebb55a649192d32e3128"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.035803975Z"}]},"request_id":"8fa0019a-2b43-4171-b9bd-7afe30ba9071","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.209074} 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":"f093aaa791cbebb55a649192d32e3128"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fc11c673-3436-4391-869f-2bd4a0c212bf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.2176454} 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":"f093aaa791cbebb55a649192d32e3128"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.035803975Z"}]},"request_id":"695b6134-1742-4ab0-b519-3d5ed59fab2e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.243628} 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":"f093aaa791cbebb55a649192d32e3128"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.063","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f093aaa791cbebb55a649192d32e3128"} device-1 | {"level":"info","message":"PATCH /devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68? 200 55ms","method":"PATCH","requestID":"f093aaa791cbebb55a649192d32e3128","responseTime":55,"status":200,"url":"/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e73a05450d27fd23bd2eb2749c49630b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":133,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.39679,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"e73a05450d27fd23bd2eb2749c49630b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.103028184Z"}]},"request_id":"8bd8ef98-08bb-4da5-9cf0-9cdf3b8841a3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.2731376} 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":"e73a05450d27fd23bd2eb2749c49630b"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb228e4b-d488-4875-b1d9-32c1a9d3d188","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.2808952} 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":"e73a05450d27fd23bd2eb2749c49630b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.103028184Z"}]},"request_id":"c122d033-6a82-45cc-ae7a-bc7899cb5c9a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.295081} 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":"e73a05450d27fd23bd2eb2749c49630b"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/b417ff57-94bd-44eb-9b55-e741d06aafed? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e73a05450d27fd23bd2eb2749c49630b"} device-1 | {"level":"info","message":"PATCH /devices/b417ff57-94bd-44eb-9b55-e741d06aafed? 200 42ms","method":"PATCH","requestID":"e73a05450d27fd23bd2eb2749c49630b","responseTime":42,"status":200,"url":"/devices/b417ff57-94bd-44eb-9b55-e741d06aafed?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6f35fb024e167bd6aa00cd68b84be0de","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":134,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.279496,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"6f35fb024e167bd6aa00cd68b84be0de"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.167823706Z"}]},"request_id":"e4aff3bb-721e-41c2-8de1-8b615426a4f1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.323107} 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":"6f35fb024e167bd6aa00cd68b84be0de"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"33327456-9c36-4026-a2ad-94cb34564d24","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.3311539} 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":"6f35fb024e167bd6aa00cd68b84be0de"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.167823706Z"}]},"request_id":"c05d7e81-7549-446e-b764-f8eca4b6d992","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.3418262} 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":"6f35fb024e167bd6aa00cd68b84be0de"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/04f4547c-1f5b-4f6c-b536-03bf62baf101? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6f35fb024e167bd6aa00cd68b84be0de"} device-1 | {"level":"info","message":"PATCH /devices/04f4547c-1f5b-4f6c-b536-03bf62baf101? 200 38ms","method":"PATCH","requestID":"6f35fb024e167bd6aa00cd68b84be0de","responseTime":38,"status":200,"url":"/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2876ee2d2d4a39701b9ef0d22cbb3e42","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":135,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.309969,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.035803975Z"}]},"request_id":"3986858b-3838-48e6-990a-eb6af603b831","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.3686867} 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":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"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:45964","level":"info","msg":"Received request.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":136,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.106664,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Received request.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":137,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.929187,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Sent response.","req_id":138,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.520621,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/5507d08a-96e7-44a7-930b-da2e39185d8d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/5507d08a-96e7-44a7-930b-da2e39185d8d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"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/c3f265a0-a6c6-44f8-aa7f-af6b06db88b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c3f265a0-a6c6-44f8-aa7f-af6b06db88b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"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/daf8695e-b4be-4f80-a4e0-3e9e01e69aaf","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/daf8695e-b4be-4f80-a4e0-3e9e01e69aaf","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Received request.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Sent response.","req_id":139,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.058606,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 18ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2876ee2d2d4a39701b9ef0d22cbb3e42"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":18}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68? HTTP/1.1","status": "200","body_bytes_sent":"1141","request_time":"0.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2876ee2d2d4a39701b9ef0d22cbb3e42"} device-1 | {"level":"info","message":"GET /devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68? 200 48ms","method":"GET","requestID":"2876ee2d2d4a39701b9ef0d22cbb3e42","responseTime":48,"status":200,"url":"/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a08cad5d00205ea0362c8a593b5c39c4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":140,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.186917,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b417ff57-94bd-44eb-9b55-e741d06aafed","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb417ff57-94bd-44eb-9b55-e741d06aafed","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.103028184Z"}]},"request_id":"02d2fef7-e39b-407e-8806-133faa99e578","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.4243257} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"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:45964","level":"info","msg":"Received request.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":141,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.312433,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":142,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.142321,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Received request.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Sent response.","req_id":143,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.936731,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Received request.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Sent response.","req_id":144,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.044126,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/80430749-2a27-4d67-a5ae-92b430ec4a95","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/80430749-2a27-4d67-a5ae-92b430ec4a95","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"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/c569b40a-f379-43dc-af22-c5e4a103e8f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c569b40a-f379-43dc-af22-c5e4a103e8f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/57530aa1-80dc-4405-a6f5-0f0b88a2ee02","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/57530aa1-80dc-4405-a6f5-0f0b88a2ee02","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e2167cc6-1227-438e-b78e-f3ec8f0a1a84","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e2167cc6-1227-438e-b78e-f3ec8f0a1a84","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"a08cad5d00205ea0362c8a593b5c39c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"client_addr":"127.0.0.1:52514","level":"info","msg":"Received request.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52522","level":"info","msg":"Received request.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52514","level":"info","msg":"Sent response.","req_id":145,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.653064,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 23ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a08cad5d00205ea0362c8a593b5c39c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":23}} authorization-1 | {"client_addr":"127.0.0.1:52522","level":"info","msg":"Sent response.","req_id":146,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.118772,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a08cad5d00205ea0362c8a593b5c39c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b417ff57-94bd-44eb-9b55-e741d06aafed? HTTP/1.1","status": "200","body_bytes_sent":"1491","request_time":"0.064","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a08cad5d00205ea0362c8a593b5c39c4"} device-1 | {"level":"info","message":"GET /devices/b417ff57-94bd-44eb-9b55-e741d06aafed? 200 57ms","method":"GET","requestID":"a08cad5d00205ea0362c8a593b5c39c4","responseTime":57,"status":200,"url":"/devices/b417ff57-94bd-44eb-9b55-e741d06aafed?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e0a8d4dca07a92780e85822ca3252561","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":147,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.441961,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"e0a8d4dca07a92780e85822ca3252561"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F04f4547c-1f5b-4f6c-b536-03bf62baf101","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.167823706Z"}]},"request_id":"f9e3b7c7-9c04-42d3-ade2-4a9a2abab201","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.492268} 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":"e0a8d4dca07a92780e85822ca3252561"},"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:45964","level":"info","msg":"Received request.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":149,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.40194,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Received request.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/1d4c9d33-9176-4307-b041-3a4115cecf4c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/1d4c9d33-9176-4307-b041-3a4115cecf4c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"e0a8d4dca07a92780e85822ca3252561"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35324","level":"info","msg":"Sent response.","req_id":150,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.784706,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Received request.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":148,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":6.157498,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:52506","level":"info","msg":"Sent response.","req_id":151,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.663064,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/db4a2846-2976-4b37-afd5-7cb8838e3304","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/db4a2846-2976-4b37-afd5-7cb8838e3304","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"e0a8d4dca07a92780e85822ca3252561"},"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/f28bd819-1872-4443-a878-a01600002fd6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f28bd819-1872-4443-a878-a01600002fd6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} authorization-1 | {"level":"info","message":"POST /authorize 200 16ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e0a8d4dca07a92780e85822ca3252561"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":16}} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/15d4d9c0-b61a-4ba4-99dd-fe5329c10e68","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"e0a8d4dca07a92780e85822ca3252561"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/04f4547c-1f5b-4f6c-b536-03bf62baf101? HTTP/1.1","status": "200","body_bytes_sent":"1142","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0a8d4dca07a92780e85822ca3252561"} device-1 | {"level":"info","message":"GET /devices/04f4547c-1f5b-4f6c-b536-03bf62baf101? 200 46ms","method":"GET","requestID":"e0a8d4dca07a92780e85822ca3252561","responseTime":46,"status":200,"url":"/devices/04f4547c-1f5b-4f6c-b536-03bf62baf101?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b6991d75ef131690283b9c28e4c3c772","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":152,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.910406,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"b6991d75ef131690283b9c28e4c3c772"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"824111f3-abec-472f-a3a4-e9b001b69dbf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.557146} 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":"b6991d75ef131690283b9c28e4c3c772"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"173b7349-f8d7-47e4-acbe-ae1e3e23727a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.5643191} 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":"b6991d75ef131690283b9c28e4c3c772"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"9b1d538b-da7e-4c8a-987b-22638840a7f2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.5768888} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"08d0e1f8-ae4b-4706-a713-8e0d868e39bd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.5772285} 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":"b6991d75ef131690283b9c28e4c3c772"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.576873057Z"}]},"request_id":"40a30bb3-9ccd-4b48-8b4b-98466f768ef0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.5829184} 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":"b6991d75ef131690283b9c28e4c3c772"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"284","request_time":"0.058","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b6991d75ef131690283b9c28e4c3c772"} device-1 | {"level":"info","message":"POST /devices? 201 53ms","method":"POST","requestID":"b6991d75ef131690283b9c28e4c3c772","responseTime":53,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f41d774433fcc006335b73aef6f30460","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":153,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.715677,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"f41d774433fcc006335b73aef6f30460"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"99987859-25c4-4902-924c-59b83ea58613","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6136043} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f41d774433fcc006335b73aef6f30460"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"860e624c-e573-4a74-b70a-4ed506b446d7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6182363} 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":"f41d774433fcc006335b73aef6f30460"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"13adf7c7-1af0-4ca7-9330-e21d0ab2043c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6282914} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4df07191-9204-495e-98c6-f0ace9c226b6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6284885} 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":"f41d774433fcc006335b73aef6f30460"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.628274887Z"}]},"request_id":"e8a86618-3bc8-4a4d-bf12-e426d54160d8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.632047} 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":"f41d774433fcc006335b73aef6f30460"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"545","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f41d774433fcc006335b73aef6f30460"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"f41d774433fcc006335b73aef6f30460","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4ada638d2639f067a6e83d6116faf679","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":154,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.069067,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415703,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwM30.o2DSKhQzdt8kJQvXPW0UciDLh_aJn5c28KAgYVJpKJ8"} 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":"4ada638d2639f067a6e83d6116faf679"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e71f6eb7-ae0e-4837-a552-c39d094987f7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.655936} 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":"4ada638d2639f067a6e83d6116faf679"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1278915b-1cb1-404b-acb2-00526d610f40","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6601508} 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":"4ada638d2639f067a6e83d6116faf679"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a36abd0b-b1bd-4313-a215-079330726da2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6692514} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c2b7f04e-65ab-4f1b-940a-d4d40ceb9052","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.6695094} 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":"4ada638d2639f067a6e83d6116faf679"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.669231274Z"}]},"request_id":"12d15eb2-c24f-4f52-a5fb-7a421188deb4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415703.673949} 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":"4ada638d2639f067a6e83d6116faf679"},"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":"29/Apr/2024:18:35:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4ada638d2639f067a6e83d6116faf679"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"4ada638d2639f067a6e83d6116faf679","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c63f355bf4471945498312f7f5cd69a0","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/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":"c63f355bf4471945498312f7f5cd69a0"} device-1 | {"level":"info","message":"OPTIONS /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/websocket 200 1ms","method":"OPTIONS","requestID":"c63f355bf4471945498312f7f5cd69a0","responseTime":1,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1689efb8767265d5b0429ff59fc932b8","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/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":"1689efb8767265d5b0429ff59fc932b8"} device-1 | {"level":"info","message":"OPTIONS /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/websocket 200 1ms","method":"OPTIONS","requestID":"1689efb8767265d5b0429ff59fc932b8","responseTime":1,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"eb482295332236958a8dba4732818af4","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":155,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.7069,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"924f938e830528de12b1a4c603c423aa","responseTime":4,"status":200,"url":"/auth"} 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":"eb482295332236958a8dba4732818af4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":156,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.937391,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"924f938e830528de12b1a4c603c423aa"},"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":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eb482295332236958a8dba4732818af4"} device-1 | {"level":"info","message":"POST /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/websocket 200 39ms","method":"POST","requestID":"eb482295332236958a8dba4732818af4","responseTime":39,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.050","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"924f938e830528de12b1a4c603c423aa"} device-1 | {"level":"info","message":"POST /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/websocket 200 42ms","method":"POST","requestID":"924f938e830528de12b1a4c603c423aa","responseTime":42,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1e53fe0f74186e11fb4266032e0ea216","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":157,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.744494,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"1e53fe0f74186e11fb4266032e0ea216"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.669231274Z"}]},"request_id":"446d1305-9b29-4fb9-9806-ac06daca146f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.6892838} 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":"1e53fe0f74186e11fb4266032e0ea216"},"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":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/361d84c8-77fc-4dc0-8795-52c724de70f4? 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":"1e53fe0f74186e11fb4266032e0ea216"} device-1 | {"level":"info","message":"GET /devices/361d84c8-77fc-4dc0-8795-52c724de70f4? 200 21ms","method":"GET","requestID":"1e53fe0f74186e11fb4266032e0ea216","responseTime":21,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8601a14db2966a44177c3b2575162343","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:45964","level":"info","msg":"Received request.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":158,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.297719,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"8601a14db2966a44177c3b2575162343"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"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:45964","level":"info","msg":"Received request.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":159,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.1593,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/162649cf-c2ff-42e7-85c0-926208d9131c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/162649cf-c2ff-42e7-85c0-926208d9131c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"32e89740-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":160,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.908935,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"32e8e560-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F162649cf-c2ff-42e7-85c0-926208d9131c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.628274887Z"}]},"request_id":"aaf43ed2-aac1-47a8-aaf4-af25f228f511","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.7947547} 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":"32e89740-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.669231274Z"}]},"request_id":"01f6e4ad-36dd-42f3-8725-cecbebbf9bbb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.796318} 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":"32e8e560-0657-11ef-8390-917b0c22016f"},"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/361d84c8-77fc-4dc0-8795-52c724de70f4? 200 24ms","method":"GET","requestID":"32e8e560-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":161,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.715682,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"32e89740-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/162649cf-c2ff-42e7-85c0-926208d9131c? 200 34ms","method":"GET","requestID":"32e89740-0657-11ef-8390-917b0c22016f","responseTime":34,"status":200,"url":"/devices/162649cf-c2ff-42e7-85c0-926208d9131c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":162,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.202931,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"32fa98a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":163,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.466723,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"32fb0dd0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":164,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.849544,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9128cb87-ecfc-4a01-a8f8-19e4e3d24fcd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9153903} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"32fb8300-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.576873057Z"}]},"request_id":"33f0d0d1-db0e-4c51-b6d7-2be579bc168a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.92075} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.669231274Z"}]},"request_id":"57d91752-c177-4ed3-8535-26bc07c58eee","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.92257} 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":"32fa98a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"level":"info","message":"POST /relations/query 200 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":"32fb0dd0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling 200 30ms","method":"POST","requestID":"32fb8300-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1? 200 37ms","method":"GET","requestID":"32fa98a0-0657-11ef-8390-917b0c22016f","responseTime":37,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe9177358-18c2-4282-a109-e7068eec45e7#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe9177358-18c2-4282-a109-e7068eec45e7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"71373598-36bb-4be9-9a0c-86b5cfaeb203","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9366486} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5b6fe68b-d79b-4011-9a7a-35ad5c3e854e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9370625} device-1 | {"level":"info","message":"GET /devices/361d84c8-77fc-4dc0-8795-52c724de70f4? 200 36ms","method":"GET","requestID":"32fb0dd0-0657-11ef-8390-917b0c22016f","responseTime":36,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"8601a14db2966a44177c3b2575162343"},"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:45964","level":"info","msg":"Received request.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"702473d5-8b67-45fb-8b77-8b8d1109923d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9436946} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":165,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.789315,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3300b320-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eba0962e-2276-4317-9f6f-01627afe0a50","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9474022} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":166,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.869998,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33012850-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.253","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8601a14db2966a44177c3b2575162343"} experiment-1 | {"level":"info","message":"POST /experiments? 201 245ms","method":"POST","requestID":"8601a14db2966a44177c3b2575162343","responseTime":245,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling 200 16ms","method":"POST","requestID":"3300b320-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling 200 14ms","method":"POST","requestID":"33012850-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"07933df5cc350c987c472c4bc87a69d0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a8db24ef-c0b7-4bd8-9b86-f5a168a9a9b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.963077} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":168,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.933606,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"07933df5cc350c987c472c4bc87a69d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":167,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.667648,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3303c060-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.576873057Z"}]},"request_id":"1b42825e-40fd-4086-8349-0d18382df031","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9685419} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"07933df5cc350c987c472c4bc87a69d0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"POST /devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling 200 12ms","method":"POST","requestID":"3303c060-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"578ddc68-79fd-4d45-bab0-6a50da41358e"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"9eac0c25-6e0b-4f87-a4b5-d49d37d8b052"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"ee519ea3-1729-4b6a-9e78-131b9d29a491"}]},"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/ffd881ba-a997-437e-873c-d8f9caf4b0b1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1? HTTP/1.1","status": "200","body_bytes_sent":"283","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"07933df5cc350c987c472c4bc87a69d0"} device-1 | {"level":"info","message":"GET /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1? 200 17ms","method":"GET","requestID":"07933df5cc350c987c472c4bc87a69d0","responseTime":17,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":169,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.024215,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"33060a50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7057f7de69d4231d78e3799a81efee83","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":170,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643712,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415705,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNX0.x652bPxOceQ0UAxBJqPA7Y-s2YR_bv4_9UzuvEr7SAw"} 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":"7057f7de69d4231d78e3799a81efee83"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5529e911-d823-4335-aeed-855c7d20b13f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9914398} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7748b148-db05-4f71-91f5-c20810433082","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.991636} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:03.669231274Z"}]},"request_id":"1e974626-a64c-46dc-9bf9-f8aa483b28fd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415705.9923272} 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":"33060a50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7057f7de69d4231d78e3799a81efee83"},"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":"29/Apr/2024:18:35:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/361d84c8-77fc-4dc0-8795-52c724de70f4? 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":"7057f7de69d4231d78e3799a81efee83"} device-1 | {"level":"info","message":"GET /devices/361d84c8-77fc-4dc0-8795-52c724de70f4? 200 16ms","method":"GET","requestID":"7057f7de69d4231d78e3799a81efee83","responseTime":16,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4?"} 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/2f6dbab7-8cce-420c-93c1-7088880c4cc5'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5'"} 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 55ms","method":"POST","requestID":"33060a50-0657-11ef-8390-917b0c22016f","responseTime":55,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6e69ecb8-3214-4416-8b15-ac8d3b22e048","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.0591576} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":171,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.651186,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33128d70-0657-11ef-8390-917b0c22016f"},"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/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling 200 10ms","method":"POST","requestID":"33128d70-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c90eae3d-e012-4985-b2f1-ab48e3246352","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.0744488} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":172,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.282291,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3314b050-0657-11ef-8390-917b0c22016f"},"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/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling 200 10ms","method":"POST","requestID":"3314b050-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2e13864d74f306cd90168c01d7e2db63","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/ffd881ba-a997-437e-873c-d8f9caf4b0b1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"2e13864d74f306cd90168c01d7e2db63","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"2e13864d74f306cd90168c01d7e2db63"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","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/2f6dbab7-8cce-420c-93c1-7088880c4cc5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6d4225e5049283bfc0d8314196aec439","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/ffd881ba-a997-437e-873c-d8f9caf4b0b1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2f6dbab7-8cce-420c-93c1-7088880c4cc5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ed393e12-0f14-46e6-a1de-fd2982324223","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.294788} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":173,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.585341,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5","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":"33364210-0657-11ef-8390-917b0c22016f"},"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/2f6dbab7-8cce-420c-93c1-7088880c4cc5 200 10ms","method":"GET","requestID":"33364210-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 35ms","method":"POST","requestID":"6d4225e5049283bfc0d8314196aec439","responseTime":35,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.037","http_referrer":"","http_user_agent":"node-fetch","requestID":"6d4225e5049283bfc0d8314196aec439"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1b8f4cce-499d-4658-bd26-a800a9cbc9cc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.3242636} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":174,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.009638,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"333ad5f0-0657-11ef-8390-917b0c22016f"},"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/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling 200 11ms","method":"POST","requestID":"333ad5f0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f0ac7f59-f4ac-42b4-9edb-60db1e03f42b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.337934} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":175,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.336013,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"333cf8d0-0657-11ef-8390-917b0c22016f"},"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/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling 200 11ms","method":"POST","requestID":"333cf8d0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8f157f361b1f6eddc211fdee85cafb68","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/e9177358-18c2-4282-a109-e7068eec45e7"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":176,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.048477,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415706,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0"} 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":"8f157f361b1f6eddc211fdee85cafb68"},"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/e9177358-18c2-4282-a109-e7068eec45e7"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/e9177358-18c2-4282-a109-e7068eec45e7 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8f157f361b1f6eddc211fdee85cafb68"} experiment-1 | {"level":"info","message":"GET /experiments/e9177358-18c2-4282-a109-e7068eec45e7 200 16ms","method":"GET","requestID":"8f157f361b1f6eddc211fdee85cafb68","responseTime":16,"status":200,"url":"/experiments/e9177358-18c2-4282-a109-e7068eec45e7"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0ca21f73d0b23de0514a1dcad4a9fff8","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/e9177358-18c2-4282-a109-e7068eec45e7"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":177,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.126969,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415706,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0"} 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":"0ca21f73d0b23de0514a1dcad4a9fff8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":178,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.01662,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415706,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0"} 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":"334906c0-0657-11ef-8390-917b0c22016f"},"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/2f6dbab7-8cce-420c-93c1-7088880c4cc5' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7e4f272801f7bb1042644d73539cf0c5","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2f6dbab7-8cce-420c-93c1-7088880c4cc5': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F2f6dbab7-8cce-420c-93c1-7088880c4cc5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"9f4dec47-514c-43cd-a6d2-1065329a0e2e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.4408019} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c3ffd777-4239-46b0-8693-d24c490d7027","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.4413424} 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/ffd881ba-a997-437e-873c-d8f9caf4b0b1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3ed43b5d09911fa21d914d82d39ed116","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"334906c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} 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/ffd881ba-a997-437e-873c-d8f9caf4b0b1"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"2f6dbab7-8cce-420c-93c1-7088880c4cc5","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/2f6dbab7-8cce-420c-93c1-7088880c4cc5 204 66ms","method":"DELETE","requestID":"334906c0-0657-11ef-8390-917b0c22016f","responseTime":66,"status":204,"url":"/peerconnections/2f6dbab7-8cce-420c-93c1-7088880c4cc5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/e9177358-18c2-4282-a109-e7068eec45e7"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fffd881ba-a997-437e-873c-d8f9caf4b0b1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73bdf22b-3f96-4ef9-b046-d93cb8e7299b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.5184438} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":179,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.453698,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"335821f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling 200 16ms","method":"POST","requestID":"335821f0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe9177358-18c2-4282-a109-e7068eec45e7': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fe9177358-18c2-4282-a109-e7068eec45e7","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"0de2e518-6f0f-4049-bee9-df64eac3cf93","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.5292146} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4f6ae13b-c6b7-4d67-ae85-4c91e9b2804d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.529675} 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":"0ca21f73d0b23de0514a1dcad4a9fff8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F361d84c8-77fc-4dc0-8795-52c724de70f4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0cd1674e-6b68-4ffb-91ff-a1557411f887","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.5371327} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":180,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.83991,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/361d84c8-77fc-4dc0-8795-52c724de70f4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"335b0820-0657-11ef-8390-917b0c22016f"},"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/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling 200 16ms","method":"POST","requestID":"335b0820-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/361d84c8-77fc-4dc0-8795-52c724de70f4/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/e9177358-18c2-4282-a109-e7068eec45e7"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/e9177358-18c2-4282-a109-e7068eec45e7 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.199","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0ca21f73d0b23de0514a1dcad4a9fff8"} experiment-1 | {"level":"info","message":"DELETE /experiments/e9177358-18c2-4282-a109-e7068eec45e7 204 197ms","method":"DELETE","requestID":"0ca21f73d0b23de0514a1dcad4a9fff8","responseTime":197,"status":204,"url":"/experiments/e9177358-18c2-4282-a109-e7068eec45e7"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"7e4f272801f7bb1042644d73539cf0c5","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch","requestID":"7e4f272801f7bb1042644d73539cf0c5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0","level":"info","message":"auth send jwt"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"3ed43b5d09911fa21d914d82d39ed116","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch","requestID":"3ed43b5d09911fa21d914d82d39ed116"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b39c9e742de7171af1b810adcc052ed9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2196","request_time":"0.954","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c94d3923f3e12fdcdab95afcfa8b9278"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"0.967","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"bc0ddac1235471eeeb1eb40875e5489c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":181,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.930316,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415706,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0"} 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":"b39c9e742de7171af1b810adcc052ed9"},"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/361d84c8-77fc-4dc0-8795-52c724de70f4' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ffd881ba-a997-437e-873c-d8f9caf4b0b1' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"853dc559-2228-48af-b572-3328ac62e2bc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6220315} 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":"b39c9e742de7171af1b810adcc052ed9"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d46959a4-a96b-4568-9cbd-77bd4a078151","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6268504} 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":"b39c9e742de7171af1b810adcc052ed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"b9784566-3d30-4922-97dd-f65870462b1d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6365743} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f8e952d-811b-4187-96ff-14c282f09389","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6367} 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":"b39c9e742de7171af1b810adcc052ed9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"04ff167c-7835-4bf4-a6fb-8561aaada1e0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6414294} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b39c9e742de7171af1b810adcc052ed9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"b39c9e742de7171af1b810adcc052ed9","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:06 +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":"b39c9e742de7171af1b810adcc052ed9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f54afc170758c425a2976b4e427e88e0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":182,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.646575,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415706,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwNn0.2XEWCCKt59NLUJM-EPhwWfh4VkOb11VdkzVu8WMXrg0"} 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":"f54afc170758c425a2976b4e427e88e0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ebace422-0d87-46ea-b502-208016a8bf9a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6693306} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f54afc170758c425a2976b4e427e88e0"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"173f428e-317d-4a9d-b1b3-0ccab9ed4b94","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6744094} 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":"f54afc170758c425a2976b4e427e88e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"51add6aa-439b-4765-882a-26eaf4b73ed6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6848037} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5da1fa4e-0a70-4220-bbcf-a62e789ae44c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6849897} 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":"f54afc170758c425a2976b4e427e88e0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.684768887Z"}]},"request_id":"a1740079-9a4c-476a-9de3-4d59833e76e0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415706.6890116} 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":"f54afc170758c425a2976b4e427e88e0"},"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":"29/Apr/2024:18:35:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f54afc170758c425a2976b4e427e88e0"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"f54afc170758c425a2976b4e427e88e0","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwN30.rclgrPa5CLXE_XzWm_yV3sBQ78dxGxMa3MUthu94fdk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"91ec6ec47b8c328a6cc9e4aec3d901b5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":183,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.120993,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415707,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwN30.rclgrPa5CLXE_XzWm_yV3sBQ78dxGxMa3MUthu94fdk"} 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":"91ec6ec47b8c328a6cc9e4aec3d901b5"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"56dc5370-2779-4bd6-92b9-c575e3e7a07b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415707.1973011} 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":"91ec6ec47b8c328a6cc9e4aec3d901b5"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b56cf1fc-5fe0-4aff-ae78-ef909d17c0ea","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415707.2066295} 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":"91ec6ec47b8c328a6cc9e4aec3d901b5"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"a2b34ec9-ee76-43b3-80c9-7fa071a227e0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415707.2260547} 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":"91ec6ec47b8c328a6cc9e4aec3d901b5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f 200 51ms","method":"PATCH","requestID":"91ec6ec47b8c328a6cc9e4aec3d901b5","responseTime":51,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"} gateway-1 | {"time_local":"29/Apr/2024:18:35:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"91ec6ec47b8c328a6cc9e4aec3d901b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwN30.rclgrPa5CLXE_XzWm_yV3sBQ78dxGxMa3MUthu94fdk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cb6b27038b7827b6d2147e4bb9ee873d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":184,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.162896,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415707,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwN30.rclgrPa5CLXE_XzWm_yV3sBQ78dxGxMa3MUthu94fdk"} 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":"cb6b27038b7827b6d2147e4bb9ee873d"},"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":"29/Apr/2024:18:35:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.025","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cb6b27038b7827b6d2147e4bb9ee873d"} device-1 | {"level":"info","message":"POST /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/websocket 200 21ms","method":"POST","requestID":"cb6b27038b7827b6d2147e4bb9ee873d","responseTime":21,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"18770c72dd37762cb3efcc9f6d8c7739","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/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":"18770c72dd37762cb3efcc9f6d8c7739"} device-1 | {"level":"info","message":"OPTIONS /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/websocket 200 2ms","method":"OPTIONS","requestID":"18770c72dd37762cb3efcc9f6d8c7739","responseTime":2,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e5529ecbac0db2e5be9541c0e5681c67","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":185,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.235983,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"e5529ecbac0db2e5be9541c0e5681c67"},"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":"29/Apr/2024:18:35:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.042","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e5529ecbac0db2e5be9541c0e5681c67"} device-1 | {"level":"info","message":"POST /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/websocket 200 36ms","method":"POST","requestID":"e5529ecbac0db2e5be9541c0e5681c67","responseTime":36,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cf6652ff9a7eadd397d4f282a0632322","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":186,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.242944,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"cf6652ff9a7eadd397d4f282a0632322"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"6b52e6d3-293e-4d5a-b9a6-f87975a978c5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.7631803} 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":"cf6652ff9a7eadd397d4f282a0632322"},"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":"29/Apr/2024:18:35:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cf6652ff9a7eadd397d4f282a0632322"} device-1 | {"level":"info","message":"GET /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? 200 19ms","method":"GET","requestID":"cf6652ff9a7eadd397d4f282a0632322","responseTime":19,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3bd1cd3786224e8feb32dd55a2b12acb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":187,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291464,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"3bd1cd3786224e8feb32dd55a2b12acb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.684768887Z"}]},"request_id":"9ab217c4-19c1-4e84-aa00-d5ecbb317b28","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.79256} 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":"3bd1cd3786224e8feb32dd55a2b12acb"},"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":"29/Apr/2024:18:35:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4? 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":"3bd1cd3786224e8feb32dd55a2b12acb"} device-1 | {"level":"info","message":"GET /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4? 200 22ms","method":"GET","requestID":"3bd1cd3786224e8feb32dd55a2b12acb","responseTime":22,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0dfac062db1fcce63e0256463541707b","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:45964","level":"info","msg":"Received request.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":188,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.379137,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"0dfac062db1fcce63e0256463541707b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"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:45964","level":"info","msg":"Received request.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":189,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.881808,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"34bfc840-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":190,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.310207,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"34c01660-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"3f2eaa47-ed96-41f6-b47d-e3712365728f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.8847058} 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":"34bfc840-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.684768887Z"}]},"request_id":"a2795326-e55f-4ae8-a2f1-ce75a7e72e82","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.8865898} 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":"34c01660-0657-11ef-8390-917b0c22016f"},"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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? 200 28ms","method":"GET","requestID":"34bfc840-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4? 200 28ms","method":"GET","requestID":"34c01660-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":191,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.296332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"34ce2020-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":192,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.652896,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"34ce9550-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":193,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.53677,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:08Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2497a03-50ee-4421-8a17-35052ef8812e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.977888} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34cf0a80-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"7561ec8a-576c-4e8e-9210-70ef5c8663e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.982422} 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":"34ce2020-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.684768887Z"}]},"request_id":"5dc9ba5a-a141-4196-bc58-6affe2eb75eb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.9878147} 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":"34ce9550-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling 200 25ms","method":"POST","requestID":"34cf0a80-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab390d64-7872-45ea-a3f4-36a25fce8c6f#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab390d64-7872-45ea-a3f4-36a25fce8c6f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0ca20b5e-4781-479e-8858-de652738a4fb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415708.9999828} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1af900c9-e687-4a3d-be2d-b004c24cc3ae","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0004694} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"0dfac062db1fcce63e0256463541707b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} device-1 | {"level":"info","message":"GET /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? 200 42ms","method":"GET","requestID":"34ce2020-0657-11ef-8390-917b0c22016f","responseTime":42,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4? 200 40ms","method":"GET","requestID":"34ce9550-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"53fb75f0-68ef-4216-b5eb-354b08ff9c76","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.009542} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":194,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.049609,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d3c570-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} device-1 | {"level":"info","message":"POST /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling 200 21ms","method":"POST","requestID":"34d3c570-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling"} gateway-1 | {"time_local":"29/Apr/2024:18:35:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"811","request_time":"0.217","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0dfac062db1fcce63e0256463541707b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 210ms","method":"POST","requestID":"0dfac062db1fcce63e0256463541707b","responseTime":210,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f2b48af8-0531-41bc-aade-4600cc6d7d52","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0222847} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":195,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.71781,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d63670-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOX0.OsxVRGyxt6k51wbXugQLiaRiFXpXDIOd7Hd7CoU6Yy0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6e50a10246ee40fe0053a2a509766ce5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling 200 13ms","method":"POST","requestID":"34d63670-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":196,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.85115,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415709,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOX0.OsxVRGyxt6k51wbXugQLiaRiFXpXDIOd7Hd7CoU6Yy0"} 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":"6e50a10246ee40fe0053a2a509766ce5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b10b98d8-e5b5-4a55-8a86-967fcf061e65","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0375674} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":197,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.464668,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34d8ce80-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.636556958Z"}]},"request_id":"896e5bcc-385b-436f-886c-676b17549924","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0446332} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling 200 14ms","method":"POST","requestID":"34d8ce80-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6e50a10246ee40fe0053a2a509766ce5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"6c5a80d0-cda3-47ae-8efb-47b3d6de1cd4"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"21cf17c4-9788-4e1e-9b3f-ca6500f28acf"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"4a2393bb-bb81-40ad-a8fb-3d95c9ec0974"}]},"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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? 200 23ms","method":"GET","requestID":"6e50a10246ee40fe0053a2a509766ce5","responseTime":23,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6e50a10246ee40fe0053a2a509766ce5"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":198,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.179059,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415708,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOH0.daUdsYykrIz_26Wt8zraAM1_4HITji4VCV34ytJoRCg"} 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":"34db8da0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOX0.OsxVRGyxt6k51wbXugQLiaRiFXpXDIOd7Hd7CoU6Yy0","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d54a31891f426de7e4fb3af1e45c1b77","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":199,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.934879,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415709,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcwOX0.OsxVRGyxt6k51wbXugQLiaRiFXpXDIOd7Hd7CoU6Yy0"} 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":"d54a31891f426de7e4fb3af1e45c1b77"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"71f766a6-4b24-425d-b434-d4e2e8c031d9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0708814} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be2dfbc9-ed17-4e90-8aed-721c25a20093","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0711207} 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":"34db8da0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:06.684768887Z"}]},"request_id":"0480745a-02a1-4178-9a60-b27440fa4182","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.0721383} 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":"d54a31891f426de7e4fb3af1e45c1b77"},"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/7f901af4-bb3a-418b-94ac-311fd79caaf4? 200 20ms","method":"GET","requestID":"d54a31891f426de7e4fb3af1e45c1b77","responseTime":20,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4? 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":"d54a31891f426de7e4fb3af1e45c1b77"} 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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28'"} 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 53ms","method":"POST","requestID":"34db8da0-0657-11ef-8390-917b0c22016f","responseTime":53,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d27d42f4-43a7-4781-9f93-0f8942134478","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.1446345} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":200,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.768164,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34e92230-0657-11ef-8390-917b0c22016f"},"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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling 200 11ms","method":"POST","requestID":"34e92230-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ada8b0fc-0ebf-4499-bf0f-a40af3cb6269","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415709.1567822} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":201,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.342924,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:09Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"34eb1e00-0657-11ef-8390-917b0c22016f"},"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/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling 200 9ms","method":"POST","requestID":"34eb1e00-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"46541fa86e1a7d477c983cab98d795b1","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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"46541fa86e1a7d477c983cab98d795b1","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"46541fa86e1a7d477c983cab98d795b1"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"71c18f26abca187d0711e739b761fcd6","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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03ae4f9f-61c0-48b3-a593-b2bec2b20e28","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d762df18-e603-4116-aa06-605e83ab77b8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.2486165} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":202,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.187419,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28","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":"35919730-0657-11ef-8390-917b0c22016f"},"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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28 200 13ms","method":"GET","requestID":"35919730-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"71c18f26abca187d0711e739b761fcd6","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"71c18f26abca187d0711e739b761fcd6"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad5d3514-db76-46ed-ab11-1dab194a2af8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.2812865} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":203,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.19268,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35967930-0657-11ef-8390-917b0c22016f"},"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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling 200 14ms","method":"POST","requestID":"35967930-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a51beb78-226a-4e3d-b35e-10d9514bdab8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.2989175} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":204,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.422597,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35991140-0657-11ef-8390-917b0c22016f"},"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/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling 200 15ms","method":"POST","requestID":"35991140-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a76fe24da41fde2f9bdd0acbf5d784b2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":205,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.164762,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415710,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk"} 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":"a76fe24da41fde2f9bdd0acbf5d784b2"},"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/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} gateway-1 | {"time_local":"29/Apr/2024:18:35:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f HTTP/1.1","status": "200","body_bytes_sent":"884","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a76fe24da41fde2f9bdd0acbf5d784b2"} experiment-1 | {"level":"info","message":"GET /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f 200 20ms","method":"GET","requestID":"a76fe24da41fde2f9bdd0acbf5d784b2","responseTime":20,"status":200,"url":"/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"93e1ccc927192c277fb91f4c5ed8cf42","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":206,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.212816,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415710,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk"} 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":"93e1ccc927192c277fb91f4c5ed8cf42"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":207,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.333331,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415710,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk"} 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":"35b328f0-0657-11ef-8390-917b0c22016f"},"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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"70fdaa237739dbc3231467ac6fffba3a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03ae4f9f-61c0-48b3-a593-b2bec2b20e28': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F03ae4f9f-61c0-48b3-a593-b2bec2b20e28","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"d25dcba0-511f-4dc1-8259-f7fc467df079","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.4949517} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"14fe8eec5486f7b313ca4dd9a9089780","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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"}}},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"30dca186-4b3a-4e5d-adcd-738eac5a938f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.4955277} 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/9edaeeff-cf15-49dc-9130-fe70d99a4c2f"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35b328f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"data":{"peerconnection":"03ae4f9f-61c0-48b3-a593-b2bec2b20e28","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/03ae4f9f-61c0-48b3-a593-b2bec2b20e28 204 71ms","method":"DELETE","requestID":"35b328f0-0657-11ef-8390-917b0c22016f","responseTime":71,"status":204,"url":"/peerconnections/03ae4f9f-61c0-48b3-a593-b2bec2b20e28"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":208,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.303388,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F9edaeeff-cf15-49dc-9130-fe70d99a4c2f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fdb7a2db-164d-44d5-9bbd-33e77227431b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.56979} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35c24420-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling 200 17ms","method":"POST","requestID":"35c24420-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab390d64-7872-45ea-a3f4-36a25fce8c6f': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fab390d64-7872-45ea-a3f4-36a25fce8c6f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"8db3ce73-02c3-40b1-8bcf-68d51fc21724","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.5892913} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"deba027d-6391-4d56-8a32-e6867dbea08c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.5897892} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7f901af4-bb3a-418b-94ac-311fd79caaf4","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15f1acb5-2632-4bd7-a1a7-75a1acbd3336","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.5898464} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":209,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.153789,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"35c55160-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"level":"info","message":"POST /relations/update 200 32ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"93e1ccc927192c277fb91f4c5ed8cf42"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":32}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling 200 16ms","method":"POST","requestID":"35c55160-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/7f901af4-bb3a-418b-94ac-311fd79caaf4/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} gateway-1 | {"time_local":"29/Apr/2024:18:35:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.219","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"93e1ccc927192c277fb91f4c5ed8cf42"} experiment-1 | {"level":"info","message":"DELETE /experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f 204 214ms","method":"DELETE","requestID":"93e1ccc927192c277fb91f4c5ed8cf42","responseTime":214,"status":204,"url":"/experiments/ab390d64-7872-45ea-a3f4-36a25fce8c6f"} gateway-1 | {"time_local":"29/Apr/2024:18:35:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"3.400","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"aa22186460dc534ef0295454cc926d91"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 167ms","method":"POST","requestID":"70fdaa237739dbc3231467ac6fffba3a","responseTime":167,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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":"70fdaa237739dbc3231467ac6fffba3a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 165ms","method":"POST","requestID":"14fe8eec5486f7b313ca4dd9a9089780","responseTime":165,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.173","http_referrer":"","http_user_agent":"node-fetch","requestID":"14fe8eec5486f7b313ca4dd9a9089780"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a9975445fba3cfe8483ee01b948074d3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2326","request_time":"1.945","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"36840d2109ee279c150192f6f2d4afc7"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":210,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.888363,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/9edaeeff-cf15-49dc-9130-fe70d99a4c2f' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415710,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk"} 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":"a9975445fba3cfe8483ee01b948074d3"},"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/7f901af4-bb3a-418b-94ac-311fd79caaf4' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"fc8ccb3d-e96d-40e0-bff2-8461112e8777","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.6879983} 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":"a9975445fba3cfe8483ee01b948074d3"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6fdc085-c162-409e-a073-906bf2a9ef90","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.6932096} 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":"a9975445fba3cfe8483ee01b948074d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e23816e2-672d-4779-9acf-f4f955ca6c09","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.7050505} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"67ac5ea7-7c76-49b4-8d6d-fb0b65ac1b15","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.705463} 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":"a9975445fba3cfe8483ee01b948074d3"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.705024515Z"}]},"request_id":"f9ad022c-97eb-4339-be7f-d3d98ee48a27","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.710716} 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":"a9975445fba3cfe8483ee01b948074d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 45ms","method":"POST","requestID":"a9975445fba3cfe8483ee01b948074d3","responseTime":45,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a9975445fba3cfe8483ee01b948074d3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7d4e032faf0554f937fb20ab32b9a2fe","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":211,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.974247,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415710,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMH0.dsQBsQ8FA7hMuBaLQ1zhBZa76nxUOp-3qsmPBsnyGKk"} 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":"7d4e032faf0554f937fb20ab32b9a2fe"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1a5289b0-396c-4195-9371-607c158d7d6d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.736555} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d4e032faf0554f937fb20ab32b9a2fe"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e6a3c80-dcc7-4cb6-aeb9-8f8c93953d6a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.741575} 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":"7d4e032faf0554f937fb20ab32b9a2fe"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"2e92f77a-80df-49f7-9c91-234cbcee54f6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.7501647} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"95bc9168-9aec-4ae4-9f7a-3e992dfac5b3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.7504067} 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":"7d4e032faf0554f937fb20ab32b9a2fe"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.750147652Z"}]},"request_id":"fcedbb00-d645-4fae-97b8-019549ce0901","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415710.7554681} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7d4e032faf0554f937fb20ab32b9a2fe"},"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":"29/Apr/2024:18:35: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.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7d4e032faf0554f937fb20ab32b9a2fe"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"7d4e032faf0554f937fb20ab32b9a2fe","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c87bbb6779ca7e4ed230e7b79b286f29","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ee62a46e-51b3-44bb-838a-58fec083e154/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":"c87bbb6779ca7e4ed230e7b79b286f29"} device-1 | {"level":"info","message":"OPTIONS /devices/ee62a46e-51b3-44bb-838a-58fec083e154/websocket 200 1ms","method":"OPTIONS","requestID":"c87bbb6779ca7e4ed230e7b79b286f29","responseTime":1,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0c68c3a62f938dad3827cc442ef5f881","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":212,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.329761,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6107d6ccb3fdbd7d62d1ca27a88364c1","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} gateway-1 | {"time_local":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/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":"6107d6ccb3fdbd7d62d1ca27a88364c1"} device-1 | {"level":"info","message":"OPTIONS /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/websocket 200 1ms","method":"OPTIONS","requestID":"6107d6ccb3fdbd7d62d1ca27a88364c1","responseTime":1,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/websocket"} 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":"0c68c3a62f938dad3827cc442ef5f881"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c60eb4ba975a3b275ffb3bbc1e05a0df","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":213,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.098956,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"c60eb4ba975a3b275ffb3bbc1e05a0df"},"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":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ee62a46e-51b3-44bb-838a-58fec083e154/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"0c68c3a62f938dad3827cc442ef5f881"} device-1 | {"level":"info","message":"POST /devices/ee62a46e-51b3-44bb-838a-58fec083e154/websocket 200 36ms","method":"POST","requestID":"0c68c3a62f938dad3827cc442ef5f881","responseTime":36,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/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":"c60eb4ba975a3b275ffb3bbc1e05a0df"} device-1 | {"level":"info","message":"POST /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/websocket 200 32ms","method":"POST","requestID":"c60eb4ba975a3b275ffb3bbc1e05a0df","responseTime":32,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b2f4be938d840c8dce6e6658eda4eab4","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":214,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.999231,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"b2f4be938d840c8dce6e6658eda4eab4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.705024515Z"}]},"request_id":"48ef0912-400a-4ea7-ab00-fa35d41c75ed","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415712.804024} 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":"b2f4be938d840c8dce6e6658eda4eab4"},"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":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee62a46e-51b3-44bb-838a-58fec083e154? 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":"b2f4be938d840c8dce6e6658eda4eab4"} device-1 | {"level":"info","message":"GET /devices/ee62a46e-51b3-44bb-838a-58fec083e154? 200 18ms","method":"GET","requestID":"b2f4be938d840c8dce6e6658eda4eab4","responseTime":18,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"dc13b56850233e64cd05adb91b575e10","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":215,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.260196,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"dc13b56850233e64cd05adb91b575e10"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.750147652Z"}]},"request_id":"f191df5e-e48d-4911-ad98-ad43b5378846","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415712.8313966} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"dc13b56850233e64cd05adb91b575e10"},"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":"29/Apr/2024:18:35:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 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":"dc13b56850233e64cd05adb91b575e10"} device-1 | {"level":"info","message":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 200 18ms","method":"GET","requestID":"dc13b56850233e64cd05adb91b575e10","responseTime":18,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8f3696149b41198ff7aa5e0dd47f8532","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:45964","level":"info","msg":"Received request.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":216,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.29428,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"8f3696149b41198ff7aa5e0dd47f8532"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"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:45964","level":"info","msg":"Received request.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":217,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.086607,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"37288ae0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":218,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.585997,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"3728d900-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.705024515Z"}]},"request_id":"4098774b-3843-42b9-af59-aa669769fdbb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415712.9241173} 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":"37288ae0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.750147652Z"}]},"request_id":"d6460595-f47f-4a18-a371-0c6b3d286d30","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415712.925654} 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":"3728d900-0657-11ef-8390-917b0c22016f"},"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/ee62a46e-51b3-44bb-838a-58fec083e154? 200 24ms","method":"GET","requestID":"37288ae0-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 200 22ms","method":"GET","requestID":"3728d900-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":219,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.15564,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"3733d580-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":220,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.456628,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} 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":"373423a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":221,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.300233,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:12Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a4cd798-3199-44cf-ac33-0e2a0783dc43","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415712.997732} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"373471c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.705024515Z"}]},"request_id":"d06aff16-e1b9-4ba9-8665-db477722656f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0034962} 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":"3733d580-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.750147652Z"}]},"request_id":"bcde1d31-9647-4284-9d05-9f472dde6801","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0086765} 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":"373423a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling 200 25ms","method":"POST","requestID":"373471c0-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdaafb0f9-92f2-4fbc-a7da-1ee3ab24ab98#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdaafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"cfdc4b85-c5c0-439a-935e-ec3ad82c22fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0171921} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"15604e7b-0727-4faa-9b32-4a227ed4cec4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.017547} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f3696149b41198ff7aa5e0dd47f8532"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"GET /devices/ee62a46e-51b3-44bb-838a-58fec083e154? 200 38ms","method":"GET","requestID":"3733d580-0657-11ef-8390-917b0c22016f","responseTime":38,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 200 37ms","method":"GET","requestID":"373423a0-0657-11ef-8390-917b0c22016f","responseTime":37,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"671883bb-4775-4d95-891e-97ff8693eda5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.026455} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":222,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.063628,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3738de90-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling 200 19ms","method":"POST","requestID":"3738de90-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"04d12bc4-0b65-4b8f-a882-0d2148fbdcad","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0418005} experiment-1 | {"data":{"experiment":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":223,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.079044,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"777","request_time":"0.204","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8f3696149b41198ff7aa5e0dd47f8532"} experiment-1 | {"level":"info","message":"POST /experiments? 201 197ms","method":"POST","requestID":"8f3696149b41198ff7aa5e0dd47f8532","responseTime":197,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"373b2880-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"282ce07dca7d8de615f7bd98cb2cb901","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling 200 18ms","method":"POST","requestID":"373b2880-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":224,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.254924,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"282ce07dca7d8de615f7bd98cb2cb901"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98ae2e32-f7b5-4178-9c86-0ed771a3749f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0592744} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":225,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.958054,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"373e5cd0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.705024515Z"}]},"request_id":"aa0e58bf-d244-426b-ac9f-3069195fd98f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.065179} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling 200 13ms","method":"POST","requestID":"373e5cd0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"282ce07dca7d8de615f7bd98cb2cb901"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"e0eda342-25a6-441e-a49c-b72c4229e407"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"31f8d08a-8f3a-4b1f-a4b9-f79c0739e4a1"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"8cb11a05-de26-478d-a342-724f5f2e8608"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ee62a46e-51b3-44bb-838a-58fec083e154? 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":"282ce07dca7d8de615f7bd98cb2cb901"} device-1 | {"level":"info","message":"GET /devices/ee62a46e-51b3-44bb-838a-58fec083e154? 200 20ms","method":"GET","requestID":"282ce07dca7d8de615f7bd98cb2cb901","responseTime":20,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":226,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.125051,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b959448fca2cb4ed8628d5f92d945466","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415712,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxMn0.UfOQDW53jw-bKYmoqzxQkVRlY6-J_lhTfu_vP2Rtvro"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} 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":"37416a10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":227,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.999206,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"b959448fca2cb4ed8628d5f92d945466"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:10.750147652Z"}]},"request_id":"abc2260b-9b22-46d6-82c2-accafb98fbd9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.0928993} 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":"b959448fca2cb4ed8628d5f92d945466"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e896c5cc-59a0-4456-9f58-7a7c2412a811","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.098737} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 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":"b959448fca2cb4ed8628d5f92d945466"} device-1 | {"level":"info","message":"GET /devices/ae83ec80-88c0-48ec-8816-8ab77d544e46? 200 19ms","method":"GET","requestID":"b959448fca2cb4ed8628d5f92d945466","responseTime":19,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b1a9fe52-069c-4a27-a441-0bb3e3b1bd58","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.099213} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37416a10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} 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/4118ab6b-d25a-4a25-9533-762a22723d33'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33'"} 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":"37416a10-0657-11ef-8390-917b0c22016f","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/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ac80c1d-e756-4774-888f-6d23b3a4dcf9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.161068} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":228,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.323869,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"374ded30-0657-11ef-8390-917b0c22016f"},"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/ee62a46e-51b3-44bb-838a-58fec083e154/signaling 200 11ms","method":"POST","requestID":"374ded30-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9bde8ffc-8f32-40e6-81b9-35ad356ab364","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.1738148} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":229,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.482656,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37501010-0657-11ef-8390-917b0c22016f"},"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/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling 200 10ms","method":"POST","requestID":"37501010-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"249a5bcc090c9b6566d719ffd4a6b328","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"249a5bcc090c9b6566d719ffd4a6b328","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.015","http_referrer":"","http_user_agent":"node-fetch","requestID":"249a5bcc090c9b6566d719ffd4a6b328"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","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/4118ab6b-d25a-4a25-9533-762a22723d33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"aa58dc91eb5ac97a6986b69f36d779dd","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4118ab6b-d25a-4a25-9533-762a22723d33","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b376d57c-9228-4a29-b4a0-74133f1798ff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.4095938} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":230,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.974861,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33","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":"3773ebc0-0657-11ef-8390-917b0c22016f"},"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/4118ab6b-d25a-4a25-9533-762a22723d33 200 12ms","method":"GET","requestID":"3773ebc0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 39ms","method":"POST","requestID":"aa58dc91eb5ac97a6986b69f36d779dd","responseTime":39,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"aa58dc91eb5ac97a6986b69f36d779dd"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e078b76e-93b5-4557-b7eb-a060bc11fd46","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.4399369} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":231,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.631962,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3778a6b0-0657-11ef-8390-917b0c22016f"},"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/ee62a46e-51b3-44bb-838a-58fec083e154/signaling 200 11ms","method":"POST","requestID":"3778a6b0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c50efd9-8ce6-4033-978c-556308b7aa8a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.454031} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":232,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.596515,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"377ac990-0657-11ef-8390-917b0c22016f"},"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/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling 200 14ms","method":"POST","requestID":"377ac990-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5128636d5d89461adba3a4591c0ee458","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":233,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.60154,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5128636d5d89461adba3a4591c0ee458"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98 HTTP/1.1","status": "200","body_bytes_sent":"850","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5128636d5d89461adba3a4591c0ee458"} experiment-1 | {"level":"info","message":"GET /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98 200 20ms","method":"GET","requestID":"5128636d5d89461adba3a4591c0ee458","responseTime":20,"status":200,"url":"/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c00d9d8f381ecfad781c48c99f838386","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":234,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.346737,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"c00d9d8f381ecfad781c48c99f838386"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":235,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.35324,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"37a11640-0657-11ef-8390-917b0c22016f"},"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/4118ab6b-d25a-4a25-9533-762a22723d33' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4118ab6b-d25a-4a25-9533-762a22723d33': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4118ab6b-d25a-4a25-9533-762a22723d33","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"82f89c72-9011-4694-a7a6-74153d352b90","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.7283947} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e661d9d7-bea3-4d33-9d83-df51d7cb3747","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.7288811} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"e57f69d18ccd9eb444fab7c774968aee","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37a11640-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"eb4d4077974f367d8fcbd59586dd97cb","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"4118ab6b-d25a-4a25-9533-762a22723d33","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/4118ab6b-d25a-4a25-9533-762a22723d33 204 58ms","method":"DELETE","requestID":"37a11640-0657-11ef-8390-917b0c22016f","responseTime":58,"status":204,"url":"/peerconnections/4118ab6b-d25a-4a25-9533-762a22723d33"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fee62a46e-51b3-44bb-838a-58fec083e154","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f4d06cc5-bf47-4ed0-a196-aa262f98485e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.7884767} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":236,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.244984,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ee62a46e-51b3-44bb-838a-58fec083e154","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37ad4b40-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling 200 18ms","method":"POST","requestID":"37ad4b40-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/ee62a46e-51b3-44bb-838a-58fec083e154/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdaafb0f9-92f2-4fbc-a7da-1ee3ab24ab98': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fdaafb0f9-92f2-4fbc-a7da-1ee3ab24ab98","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"3253c9d6-457c-42df-9327-17a831d3f6e3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.7988985} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0abc54d1-a383-4ed4-8974-0e2ea05bc06f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.7994044} 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":"c00d9d8f381ecfad781c48c99f838386"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fae83ec80-88c0-48ec-8816-8ab77d544e46","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c0ae961b-cfab-46c3-b3eb-6514aa78ff45","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.8123584} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":237,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.388248,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"37b0cdb0-0657-11ef-8390-917b0c22016f"},"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/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling 200 16ms","method":"POST","requestID":"37b0cdb0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c00d9d8f381ecfad781c48c99f838386"} experiment-1 | {"level":"info","message":"DELETE /experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98 204 176ms","method":"DELETE","requestID":"c00d9d8f381ecfad781c48c99f838386","responseTime":176,"status":204,"url":"/experiments/daafb0f9-92f2-4fbc-a7da-1ee3ab24ab98"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 128ms","method":"POST","requestID":"e57f69d18ccd9eb444fab7c774968aee","responseTime":128,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"e57f69d18ccd9eb444fab7c774968aee"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 128ms","method":"POST","requestID":"eb4d4077974f367d8fcbd59586dd97cb","responseTime":128,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"eb4d4077974f367d8fcbd59586dd97cb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"44d38ed0d17f754299eed373523c8096","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2046","request_time":"1.104","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ca3614072eeaa11619717f57accafb43"} gateway-1 | {"time_local":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2181","request_time":"1.117","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8cd520e638f6e88daed970a41bd45ba3"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/ae83ec80-88c0-48ec-8816-8ab77d544e46' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":238,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.936759,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"44d38ed0d17f754299eed373523c8096"},"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/ee62a46e-51b3-44bb-838a-58fec083e154' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"57227f7d-2bbe-4e86-90a3-d185d6f5ee71","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.892755} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44d38ed0d17f754299eed373523c8096"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a42db5dd-26c9-4ecd-af5a-d9d3018154d8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.8983803} 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":"44d38ed0d17f754299eed373523c8096"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5417320d-57e6-408b-8900-de9da2e16a5e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.9110165} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b4c8e5c-8c20-48c1-9b38-6202f0fe760e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.911206} 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":"44d38ed0d17f754299eed373523c8096"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.910998743Z"}]},"request_id":"31fd5e5e-6b50-4268-b0d7-1a5ae4535009","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.915547} 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":"44d38ed0d17f754299eed373523c8096"},"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":"29/Apr/2024:18:35:13 +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":"44d38ed0d17f754299eed373523c8096"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"44d38ed0d17f754299eed373523c8096","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6b73b897c06bac04d103e2fd67fe968f","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":239,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.626682,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415713,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxM30.F0RhvcByaOOmhey_MHmIlxV8IpPgi1HO7qidg0TED0E"} 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":"6b73b897c06bac04d103e2fd67fe968f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"35eac383-4084-413e-b2dd-ec982d4b4065","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.9402153} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6b73b897c06bac04d103e2fd67fe968f"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d2c72853-3bc5-43d2-a976-4b490e3a5ba7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.944747} 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":"6b73b897c06bac04d103e2fd67fe968f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"ef035bdf-a46b-488a-a288-d47dac3e9eab","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.9517817} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a8f0a529-5511-4723-ac9f-b2498f4bd63d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.9521477} 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":"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":"6b73b897c06bac04d103e2fd67fe968f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"bb6b8801-9c6c-4b2c-b310-5f5623579c29","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415713.9557133} 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":"6b73b897c06bac04d103e2fd67fe968f"},"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":"29/Apr/2024:18:35:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.039","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6b73b897c06bac04d103e2fd67fe968f"} device-1 | {"level":"info","message":"POST /devices? 201 34ms","method":"POST","requestID":"6b73b897c06bac04d103e2fd67fe968f","responseTime":34,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNH0.F4AHSfCxpTfFh-DExxqg9mz44bw6muggZRnlSIbc3dk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3d52383a033517a8157b8dc0839117eb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:14Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":240,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.659747,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415714,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNH0.F4AHSfCxpTfFh-DExxqg9mz44bw6muggZRnlSIbc3dk"} 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":"3d52383a033517a8157b8dc0839117eb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"5133b92b-5a4a-4d96-bd03-912e01b5cb64","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415714.4418218} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3d52383a033517a8157b8dc0839117eb"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c886afd-8189-43f9-8fe0-82cef612d739","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415714.4473615} 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":"3d52383a033517a8157b8dc0839117eb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"a51a5702-c4f7-4f9f-8b06-3e504acb1062","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415714.4595113} 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":"3d52383a033517a8157b8dc0839117eb"},"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":"29/Apr/2024:18:35:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/949a780c-760b-4517-b579-070d9f9dcfbc HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.037","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3d52383a033517a8157b8dc0839117eb"} device-1 | {"level":"info","message":"PATCH /devices/949a780c-760b-4517-b579-070d9f9dcfbc 200 30ms","method":"PATCH","requestID":"3d52383a033517a8157b8dc0839117eb","responseTime":30,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNH0.F4AHSfCxpTfFh-DExxqg9mz44bw6muggZRnlSIbc3dk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"45344472b01d6c3b67b77b0bcf2c3f49","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:14Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":241,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.192127,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:14Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415714,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNH0.F4AHSfCxpTfFh-DExxqg9mz44bw6muggZRnlSIbc3dk"} 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":"45344472b01d6c3b67b77b0bcf2c3f49"},"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":"29/Apr/2024:18:35:14 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/949a780c-760b-4517-b579-070d9f9dcfbc/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.022","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"45344472b01d6c3b67b77b0bcf2c3f49"} device-1 | {"level":"info","message":"POST /devices/949a780c-760b-4517-b579-070d9f9dcfbc/websocket 200 17ms","method":"POST","requestID":"45344472b01d6c3b67b77b0bcf2c3f49","responseTime":17,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"b6e58ae987766e9c3c7990b6bcffe739","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c787aec5-6472-4aae-967d-a749d015121e/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":"b6e58ae987766e9c3c7990b6bcffe739"} device-1 | {"level":"info","message":"OPTIONS /devices/c787aec5-6472-4aae-967d-a749d015121e/websocket 200 1ms","method":"OPTIONS","requestID":"b6e58ae987766e9c3c7990b6bcffe739","responseTime":1,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNX0.YyyBfswS-HB02PCXkNg7WypwE2KP2g5YOCJoxBMptKw","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"7dd123331ad210a85044cea2cda2abc3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:15Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":242,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.238891,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415715,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNX0.YyyBfswS-HB02PCXkNg7WypwE2KP2g5YOCJoxBMptKw"} 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":"7dd123331ad210a85044cea2cda2abc3"},"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":"29/Apr/2024:18:35:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c787aec5-6472-4aae-967d-a749d015121e/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":"7dd123331ad210a85044cea2cda2abc3"} device-1 | {"level":"info","message":"POST /devices/c787aec5-6472-4aae-967d-a749d015121e/websocket 200 30ms","method":"POST","requestID":"7dd123331ad210a85044cea2cda2abc3","responseTime":30,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"dde6f595ebf614a03be526f8253e7669","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":243,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.335675,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"dde6f595ebf614a03be526f8253e7669"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.910998743Z"}]},"request_id":"0c3c2dbf-d363-4cc8-b864-1c2b348da565","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.017157} 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":"dde6f595ebf614a03be526f8253e7669"},"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":"29/Apr/2024:18:35:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c787aec5-6472-4aae-967d-a749d015121e? 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":"dde6f595ebf614a03be526f8253e7669"} device-1 | {"level":"info","message":"GET /devices/c787aec5-6472-4aae-967d-a749d015121e? 200 19ms","method":"GET","requestID":"dde6f595ebf614a03be526f8253e7669","responseTime":19,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5044962b2ffcc45f2396298fbf34ff9f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":244,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.104693,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"5044962b2ffcc45f2396298fbf34ff9f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"b28365e9-ff12-4060-bdda-b75a824e141e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.0445426} 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":"5044962b2ffcc45f2396298fbf34ff9f"},"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":"29/Apr/2024:18:35:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5044962b2ffcc45f2396298fbf34ff9f"} device-1 | {"level":"info","message":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? 200 19ms","method":"GET","requestID":"5044962b2ffcc45f2396298fbf34ff9f","responseTime":19,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"48e85540797f26276ab01a5da46f4490","responseTime":7,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":245,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.290399,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"48e85540797f26276ab01a5da46f4490"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"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:45964","level":"info","msg":"Received request.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":246,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.048395,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"391084c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":247,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.128054,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"3910abd0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.910998743Z"}]},"request_id":"8a4fd5db-26d9-4b5e-9870-b243112eeea3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.1216547} 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":"391084c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"66bf7eef-193d-4a0b-8ed8-20ed0b139886","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.1233625} 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":"3910abd0-0657-11ef-8390-917b0c22016f"},"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/c787aec5-6472-4aae-967d-a749d015121e? 200 24ms","method":"GET","requestID":"391084c0-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? 200 24ms","method":"GET","requestID":"3910abd0-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":248,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.811309,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully running experiment"} 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":"391d2ef0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":249,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.611016,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"391d7d10-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.910998743Z"}]},"request_id":"3f21a97d-5ff2-4603-88b4-049f109a7bb2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.209256} 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":"391d2ef0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"cfcfe6dd-530f-40f3-8fad-9cb3cdf7bd8f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.211346} 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":"391d7d10-0657-11ef-8390-917b0c22016f"},"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:40574","level":"info","msg":"Received request.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e72a7e66-d760-4461-bd01-6f53738f2101","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.217018} authorization-1 | {"client_addr":"127.0.0.1:40574","level":"info","msg":"Sent response.","req_id":250,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.792309,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} device-1 | {"level":"info","message":"GET /devices/c787aec5-6472-4aae-967d-a749d015121e? 200 30ms","method":"GET","requestID":"391d2ef0-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"391dcb30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":22}} device-1 | {"level":"info","message":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? 200 30ms","method":"GET","requestID":"391d7d10-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b2e0aa3-ce03-4246-8231-58419d81bfe2#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b2e0aa3-ce03-4246-8231-58419d81bfe2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c242635a-9fbe-4c49-b636-1409e001418c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.2205858} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6e35393b-562b-479e-8056-9f7fed500ae4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.221381} 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":"48e85540797f26276ab01a5da46f4490"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} device-1 | {"level":"info","message":"POST /devices/c787aec5-6472-4aae-967d-a749d015121e/signaling 200 36ms","method":"POST","requestID":"391dcb30-0657-11ef-8390-917b0c22016f","responseTime":36,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"63c08afe-2f1e-46c9-a212-4c76718fdfc7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.233963} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":251,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.669994,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3922ad30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"48e85540797f26276ab01a5da46f4490"} experiment-1 | {"level":"info","message":"POST /experiments? 201 179ms","method":"POST","requestID":"48e85540797f26276ab01a5da46f4490","responseTime":179,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c787aec5-6472-4aae-967d-a749d015121e/signaling 200 16ms","method":"POST","requestID":"3922ad30-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"38236271-6790-43a7-b68e-630a3584b165","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.2446313} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":252,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.82107,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3923e5b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"38b1b89b3e15ffdbf737e70213b752c1","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"91e7ec82-1a44-451e-8400-5cc80afe06e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.2557278} device-1 | {"level":"info","message":"POST /devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling 200 22ms","method":"POST","requestID":"3923e5b0-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":253,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.357327,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3925ba70-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":254,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.488844,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"38b1b89b3e15ffdbf737e70213b752c1"},"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/949a780c-760b-4517-b579-070d9f9dcfbc/signaling 200 19ms","method":"POST","requestID":"3925ba70-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.910998743Z"}]},"request_id":"bf1aa495-89e5-438b-8177-0e71530667e8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.266666} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"048590cb-d6d0-4be8-9aae-0ec659a7e649"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"85dc57f2-ca61-4a43-833b-56931e3be2de"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"6cff665c-6b2e-43d1-9092-77f061a7edf2"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"38b1b89b3e15ffdbf737e70213b752c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c787aec5-6472-4aae-967d-a749d015121e? 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":"38b1b89b3e15ffdbf737e70213b752c1"} device-1 | {"level":"info","message":"GET /devices/c787aec5-6472-4aae-967d-a749d015121e? 200 22ms","method":"GET","requestID":"38b1b89b3e15ffdbf737e70213b752c1","responseTime":22,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":255,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.143739,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"39293ce0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"74818249d9c191495aad560b69699cea","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":256,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.425324,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415716,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxNn0.F8nQ6htdewj8V8bJd-uiRT7rVCv2rc9jtFy4UpSalaU"} 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":"74818249d9c191495aad560b69699cea"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e2974fb6-505c-4938-bf30-82626f7094c0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.2931764} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fa348ff0-68eb-4ee4-a9db-dbc72b90d588","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.293435} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:13.951744511Z"}]},"request_id":"59e2e22a-cb0c-43d1-b2c8-8b0b879a3006","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.294689} authorization-1 | {"level":"info","message":"POST /relations/update 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39293ce0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} 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":"74818249d9c191495aad560b69699cea"},"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":"29/Apr/2024:18:35:16 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"74818249d9c191495aad560b69699cea"} device-1 | {"level":"info","message":"GET /devices/949a780c-760b-4517-b579-070d9f9dcfbc? 200 22ms","method":"GET","requestID":"74818249d9c191495aad560b69699cea","responseTime":22,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc?"} 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/92bd7916-7c3d-46c2-a1ec-a74303826924'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924'"} 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 54ms","method":"POST","requestID":"39293ce0-0657-11ef-8390-917b0c22016f","responseTime":54,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"14960200-8351-476d-b34b-e384fa93643b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.3752465} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":257,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.912145,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39387f20-0657-11ef-8390-917b0c22016f"},"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/c787aec5-6472-4aae-967d-a749d015121e/signaling 200 10ms","method":"POST","requestID":"39387f20-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b0d1a190-6fe4-40cf-ab07-42d72391ddc5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415716.3861814} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":258,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.115596,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:16Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"393a53e0-0657-11ef-8390-917b0c22016f"},"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/949a780c-760b-4517-b579-070d9f9dcfbc/signaling 200 8ms","method":"POST","requestID":"393a53e0-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","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/92bd7916-7c3d-46c2-a1ec-a74303826924' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"52155adc6663ec0f0593279b59978df3","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"52155adc6663ec0f0593279b59978df3","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"52155adc6663ec0f0593279b59978df3"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","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/92bd7916-7c3d-46c2-a1ec-a74303826924' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"080b77fb6825cff23cd5c8358a461801","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92bd7916-7c3d-46c2-a1ec-a74303826924","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b6fc4f8c-452a-41e2-9dc2-2661ad237c4e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.4730332} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":259,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.711886,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924","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":"39e009c0-0657-11ef-8390-917b0c22016f"},"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/92bd7916-7c3d-46c2-a1ec-a74303826924 200 10ms","method":"GET","requestID":"39e009c0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"080b77fb6825cff23cd5c8358a461801","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"080b77fb6825cff23cd5c8358a461801"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6b17fc7a-8407-414d-b941-e44b311b3c9f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.5043128} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":260,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.269162,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39e4ebc0-0657-11ef-8390-917b0c22016f"},"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/949a780c-760b-4517-b579-070d9f9dcfbc/signaling 200 9ms","method":"POST","requestID":"39e4ebc0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e45bf752-b167-4d61-a16d-0e7520ba4f43","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.5171} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":261,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.630057,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"39e6c080-0657-11ef-8390-917b0c22016f"},"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/c787aec5-6472-4aae-967d-a749d015121e/signaling 200 10ms","method":"POST","requestID":"39e6c080-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"f89d5ca7ddf3be50d8b2a43d1399044b","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":262,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.299149,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415717,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y"} 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":"f89d5ca7ddf3be50d8b2a43d1399044b"},"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/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2 HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f89d5ca7ddf3be50d8b2a43d1399044b"} experiment-1 | {"level":"info","message":"GET /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2 200 19ms","method":"GET","requestID":"f89d5ca7ddf3be50d8b2a43d1399044b","responseTime":19,"status":200,"url":"/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ccf03f6d47d85c73d68c6e7570ca7c96","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":263,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.234336,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415717,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y"} 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":"ccf03f6d47d85c73d68c6e7570ca7c96"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":264,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.20824,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415717,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y"} 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":"3a101a70-0657-11ef-8390-917b0c22016f"},"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/92bd7916-7c3d-46c2-a1ec-a74303826924' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"92bd7916-7c3d-46c2-a1ec-a74303826924","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"3a725f186237fa463e1bbc1727f6bf88","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92bd7916-7c3d-46c2-a1ec-a74303826924': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F92bd7916-7c3d-46c2-a1ec-a74303826924","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"a0a125dd-9e54-452e-843a-025e6230526b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.8083591} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b114f962-783b-426d-a080-cfc13ec7fb9a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.8088372} 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":"3a101a70-0657-11ef-8390-917b0c22016f"},"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-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"273f80fcdeba4d0e78c575a336fde309","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924 204 63ms","method":"DELETE","requestID":"3a101a70-0657-11ef-8390-917b0c22016f","responseTime":63,"status":204,"url":"/peerconnections/92bd7916-7c3d-46c2-a1ec-a74303826924"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F949a780c-760b-4517-b579-070d9f9dcfbc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"906c2a4d-b8c4-44d6-933c-65a1a4a7189b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.8781388} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":265,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.889423,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a1d87f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling 200 14ms","method":"POST","requestID":"3a1d87f0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/949a780c-760b-4517-b579-070d9f9dcfbc/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b2e0aa3-ce03-4246-8231-58419d81bfe2': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2b2e0aa3-ce03-4246-8231-58419d81bfe2","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"f0a33ff4-8fcf-4d01-8071-f7e798f305f1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.8873634} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a87f382d-de50-4417-9719-96edf8e19843","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.887632} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"ccf03f6d47d85c73d68c6e7570ca7c96"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":18}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc787aec5-6472-4aae-967d-a749d015121e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ad88b9c-ea84-4ae9-87bd-e9e962674a51","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.892911} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":266,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.157876,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c787aec5-6472-4aae-967d-a749d015121e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3a1ff8f0-0657-11ef-8390-917b0c22016f"},"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/c787aec5-6472-4aae-967d-a749d015121e/signaling 200 11ms","method":"POST","requestID":"3a1ff8f0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/c787aec5-6472-4aae-967d-a749d015121e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ccf03f6d47d85c73d68c6e7570ca7c96"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2179","request_time":"3.461","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"056c057e3186ed2f1d26326137f1ebb4"} experiment-1 | {"level":"info","message":"DELETE /experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2 204 183ms","method":"DELETE","requestID":"ccf03f6d47d85c73d68c6e7570ca7c96","responseTime":183,"status":204,"url":"/experiments/2b2e0aa3-ce03-4246-8231-58419d81bfe2"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"3a725f186237fa463e1bbc1727f6bf88","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.143","http_referrer":"","http_user_agent":"node-fetch","requestID":"3a725f186237fa463e1bbc1727f6bf88"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"273f80fcdeba4d0e78c575a336fde309","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"273f80fcdeba4d0e78c575a336fde309"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f73944e5ae3a51b9d57bd4b997feebc2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2310","request_time":"1.978","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"31c3520cdc3af4e0b045d51fbb3a536b"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/949a780c-760b-4517-b579-070d9f9dcfbc' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":267,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.979513,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:17Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415717,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y"} 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":"f73944e5ae3a51b9d57bd4b997feebc2"},"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/c787aec5-6472-4aae-967d-a749d015121e' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"af7edd4e-3f5b-4a05-beeb-9025e3611ff3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.9739804} 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":"f73944e5ae3a51b9d57bd4b997feebc2"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3df2674f-fff6-45f6-94f3-fe350dd0bf0b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.979029} 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":"f73944e5ae3a51b9d57bd4b997feebc2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"951c8839-f974-4ca7-ac90-c08761c5154f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.9881055} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7cc02335-6052-4f44-a2b1-5b42746b28af","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.988377} 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":"f73944e5ae3a51b9d57bd4b997feebc2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"670a4419-2cb5-41ab-9fcb-253ab3bc2d03","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415717.9929924} 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":"f73944e5ae3a51b9d57bd4b997feebc2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"f73944e5ae3a51b9d57bd4b997feebc2","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:17 +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":"f73944e5ae3a51b9d57bd4b997feebc2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"55ab6882e4af1d8c2887a4c4a46120fd","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":268,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.656948,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415717,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxN30.Wo71AeEKwmPr9_xwbQ8SGmlqZ8QMwV8LgVTzWMCEm6Y"} 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":"55ab6882e4af1d8c2887a4c4a46120fd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"911189b4-5571-4a14-aefb-180c7dd28459","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.0156727} 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":"55ab6882e4af1d8c2887a4c4a46120fd"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e870fd46-eef5-43f4-b857-9f5595eb11d0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.0206559} 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":"55ab6882e4af1d8c2887a4c4a46120fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"fac0f4b1-bf2d-438d-8d41-3799ac8a972b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.0300524} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f9f5a32c-dce1-4f89-9c64-4edc7cc31fd4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.030172} 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":"55ab6882e4af1d8c2887a4c4a46120fd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:18.030035309Z"}]},"request_id":"f6149f43-8a80-4f10-9a31-cb99eb6cf79a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.0346289} 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":"55ab6882e4af1d8c2887a4c4a46120fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"55ab6882e4af1d8c2887a4c4a46120fd","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"55ab6882e4af1d8c2887a4c4a46120fd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxOH0.XEzMdTcOjVrSc1KlQs__iGbRGrDpbOI5ZE1nXRGP0bU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f7a7469c21c1a0e360aba21a47988bf1","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":269,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.006305,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415718,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxOH0.XEzMdTcOjVrSc1KlQs__iGbRGrDpbOI5ZE1nXRGP0bU"} 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":"f7a7469c21c1a0e360aba21a47988bf1"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"40e13c6c-7826-4ca4-9f5e-f28e113094ab","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.525008} 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":"f7a7469c21c1a0e360aba21a47988bf1"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cf5ed7ca-4541-4e25-8627-04ca48b5be50","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.5315099} 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":"f7a7469c21c1a0e360aba21a47988bf1"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"915c65f1-1e6b-4858-a911-6eef8447934e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415718.560066} 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":"f7a7469c21c1a0e360aba21a47988bf1"},"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":"29/Apr/2024:18:35:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.058","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f7a7469c21c1a0e360aba21a47988bf1"} device-1 | {"level":"info","message":"PATCH /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702 200 52ms","method":"PATCH","requestID":"f7a7469c21c1a0e360aba21a47988bf1","responseTime":52,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxOH0.XEzMdTcOjVrSc1KlQs__iGbRGrDpbOI5ZE1nXRGP0bU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0f94ceb51c156926eca1af5cf6dd058a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":270,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.483454,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:18Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415718,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcxOH0.XEzMdTcOjVrSc1KlQs__iGbRGrDpbOI5ZE1nXRGP0bU"} 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":"0f94ceb51c156926eca1af5cf6dd058a"},"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":"29/Apr/2024:18:35:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/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":"0f94ceb51c156926eca1af5cf6dd058a"} device-1 | {"level":"info","message":"POST /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/websocket 200 26ms","method":"POST","requestID":"0f94ceb51c156926eca1af5cf6dd058a","responseTime":26,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d5e138b610f995d07bb17627aa1eb4a3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/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":"d5e138b610f995d07bb17627aa1eb4a3"} device-1 | {"level":"info","message":"OPTIONS /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/websocket 200 1ms","method":"OPTIONS","requestID":"d5e138b610f995d07bb17627aa1eb4a3","responseTime":1,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1b98e59cf036ca27f76e7a879e0fdd75","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":271,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.363526,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"1b98e59cf036ca27f76e7a879e0fdd75"},"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":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.041","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"1b98e59cf036ca27f76e7a879e0fdd75"} device-1 | {"level":"info","message":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/websocket 200 35ms","method":"POST","requestID":"1b98e59cf036ca27f76e7a879e0fdd75","responseTime":35,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fdeac49108be6e6a6815fa2c73cda28f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":272,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.164439,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"fdeac49108be6e6a6815fa2c73cda28f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"bf7371a4-6e7e-477a-8666-3b08f01be65b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.109414} 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":"fdeac49108be6e6a6815fa2c73cda28f"},"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":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fdeac49108be6e6a6815fa2c73cda28f"} device-1 | {"level":"info","message":"GET /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702? 200 18ms","method":"GET","requestID":"fdeac49108be6e6a6815fa2c73cda28f","responseTime":18,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"46d72e5f246c429a341d95c507a7860c","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":273,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248142,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"46d72e5f246c429a341d95c507a7860c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:18.030035309Z"}]},"request_id":"e087cc3d-9d83-4c4c-85ae-7dd5c10f2657","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.135876} 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":"46d72e5f246c429a341d95c507a7860c"},"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/c0285ad4-2e86-4987-9c18-7eb574a15098? 200 19ms","method":"GET","requestID":"46d72e5f246c429a341d95c507a7860c","responseTime":19,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c0285ad4-2e86-4987-9c18-7eb574a15098? 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":"46d72e5f246c429a341d95c507a7860c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b94da834645844d8f082069918ff5664","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:45964","level":"info","msg":"Received request.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":274,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.123168,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"b94da834645844d8f082069918ff5664"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"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:45964","level":"info","msg":"Received request.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":275,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.263956,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3b829630-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":276,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.913365,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3b82bd40-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"1e85313e-c47c-4105-99d1-f2ac9eeaec98","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.2221744} 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":"3b829630-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:18.030035309Z"}]},"request_id":"8d4d0fd8-1d91-4dd7-bdcb-7a07d8b19f27","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.223653} 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":"3b82bd40-0657-11ef-8390-917b0c22016f"},"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/4a443ce7-23fb-4b40-ac6a-aba91d741702? 200 18ms","method":"GET","requestID":"3b829630-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c0285ad4-2e86-4987-9c18-7eb574a15098? 200 18ms","method":"GET","requestID":"3b82bd40-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"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:45964","level":"info","msg":"Received request.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":277,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210593,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3b8f1950-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":278,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.360577,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3b8f6770-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":279,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.69811,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fa9c6480-a4e5-4ccd-9d53-49f1a2f28af7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.308328} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"d220bc1c-aaea-4783-8e4e-3b1475a45a46","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.311403} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b8fb590-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:18.030035309Z"}]},"request_id":"06abab4d-6f1d-4102-a196-d6a7903bd5f1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.315232} authorization-1 | {"level":"info","message":"POST /relations/query 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b8f1950-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":10}} 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":"3b8f6770-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff34efb1a-296d-492e-ae3c-ac2558c75e6c#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff34efb1a-296d-492e-ae3c-ac2558c75e6c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"978835ad-3ad4-4b45-b351-8fd178089716","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3231406} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e10c5ea7-4e01-407b-94cf-d4d4de64d16e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3234222} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling 200 28ms","method":"POST","requestID":"3b8fb590-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"b94da834645844d8f082069918ff5664"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"GET /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702? 200 33ms","method":"GET","requestID":"3b8f1950-0657-11ef-8390-917b0c22016f","responseTime":33,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/c0285ad4-2e86-4987-9c18-7eb574a15098? 200 32ms","method":"GET","requestID":"3b8f6770-0657-11ef-8390-917b0c22016f","responseTime":32,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2ff265b9-2b03-4099-8751-359c8fc339f6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3349636} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":280,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.93652,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b947080-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"781","request_time":"0.200","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b94da834645844d8f082069918ff5664"} experiment-1 | {"level":"info","message":"POST /experiments? 201 193ms","method":"POST","requestID":"b94da834645844d8f082069918ff5664","responseTime":193,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f921044f-65af-48cc-b2fe-732443b23216","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3449318} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling 200 18ms","method":"POST","requestID":"3b947080-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":281,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.597275,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b95f720-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"943745526422340cb860876ba7f1e25a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling 200 14ms","method":"POST","requestID":"3b95f720-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":282,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834138,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"943745526422340cb860876ba7f1e25a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00924a14-d605-46d2-bc8f-8dc750f3d789","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3598642} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":283,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.565729,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3b988f30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:17.988085648Z"}]},"request_id":"7e05b9a0-d7be-4590-a6d5-ea932d091fea","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3639164} device-1 | {"level":"info","message":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling 200 9ms","method":"POST","requestID":"3b988f30-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"943745526422340cb860876ba7f1e25a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"a917d79b-4c78-40f8-ac5d-f888edf37e0d"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"4fb49301-b4fd-423d-b5e8-3306c42b7c59"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"f5c3ee88-3e27-4675-b001-296ee4ac85c5"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"943745526422340cb860876ba7f1e25a"} device-1 | {"level":"info","message":"GET /devices/4a443ce7-23fb-4b40-ac6a-aba91d741702? 200 17ms","method":"GET","requestID":"943745526422340cb860876ba7f1e25a","responseTime":17,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":284,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.755766,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3b9a8b00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0192ad16d2e92bf3e9523ececb5649a2","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":285,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.781898,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"0192ad16d2e92bf3e9523ececb5649a2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:18.030035309Z"}]},"request_id":"7d01b549-c7ed-4fd1-a62f-a84304b04fff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.3827648} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0192ad16d2e92bf3e9523ececb5649a2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8b1914ba-aa25-4e73-a2ad-7c8ef371b63c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.383985} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"99540ece-7ecf-41c2-87a8-193d1161c399","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.38434} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"3b9a8b00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c0285ad4-2e86-4987-9c18-7eb574a15098? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0192ad16d2e92bf3e9523ececb5649a2"} device-1 | {"level":"info","message":"GET /devices/c0285ad4-2e86-4987-9c18-7eb574a15098? 200 12ms","method":"GET","requestID":"0192ad16d2e92bf3e9523ececb5649a2","responseTime":12,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098?"} 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/7efc62d2-efa9-43d5-98c8-c8ea4967cb90'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"3b9a8b00-0657-11ef-8390-917b0c22016f","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16fb5bd3-1c5f-4c84-ad44-c31a84436eeb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.4569054} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":286,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.420735,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ba75c40-0657-11ef-8390-917b0c22016f"},"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/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling 200 10ms","method":"POST","requestID":"3ba75c40-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c47d1edf-7327-430b-957c-5b298b47ffad","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.4697292} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":287,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.719688,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ba95810-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c3f60afc9d56ab425ea26c95a89c4d80","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling 200 13ms","method":"POST","requestID":"3ba95810-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"c3f60afc9d56ab425ea26c95a89c4d80","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"c3f60afc9d56ab425ea26c95a89c4d80"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","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/7efc62d2-efa9-43d5-98c8-c8ea4967cb90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fe4e9f8c72b33adbdaded7de2d475dc4","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7efc62d2-efa9-43d5-98c8-c8ea4967cb90","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0a1a0226-7d70-4f6d-9965-9849028a680f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.5455074} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":288,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.610093,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90","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":"3bb4c9c0-0657-11ef-8390-917b0c22016f"},"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/7efc62d2-efa9-43d5-98c8-c8ea4967cb90 200 10ms","method":"GET","requestID":"3bb4c9c0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"fe4e9f8c72b33adbdaded7de2d475dc4","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"fe4e9f8c72b33adbdaded7de2d475dc4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6642b76a-ee97-4b33-86c9-3fcd8f430dd6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.5798926} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":289,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.521214,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bba20f0-0657-11ef-8390-917b0c22016f"},"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/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling 200 10ms","method":"POST","requestID":"3bba20f0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7dcad08b-14eb-4266-8317-bab459438a19","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.5924768} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":290,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.2695,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bbbf5b0-0657-11ef-8390-917b0c22016f"},"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/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling 200 11ms","method":"POST","requestID":"3bbbf5b0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3a83fbf023eea8e2c6776342d81e1041","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":291,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.211332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3a83fbf023eea8e2c6776342d81e1041"},"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/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c HTTP/1.1","status": "200","body_bytes_sent":"854","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3a83fbf023eea8e2c6776342d81e1041"} experiment-1 | {"level":"info","message":"GET /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c 200 18ms","method":"GET","requestID":"3a83fbf023eea8e2c6776342d81e1041","responseTime":18,"status":200,"url":"/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"292a09ed0ee02f94bb55548e2ee13501","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":292,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.393935,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"292a09ed0ee02f94bb55548e2ee13501"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":293,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.144834,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"3bd968c0-0657-11ef-8390-917b0c22016f"},"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/7efc62d2-efa9-43d5-98c8-c8ea4967cb90' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7efc62d2-efa9-43d5-98c8-c8ea4967cb90': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F7efc62d2-efa9-43d5-98c8-c8ea4967cb90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"aa6b13c6-c04b-407e-9e4c-37f07112107d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.8058302} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"606d66f5c250708cf6bfaa152fd6824c","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ac52e4b9-90e9-4e93-91a1-68352979c24d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.8065162} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"}}},"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":"3bd968c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"dc643c705668fd5e2b6acfc1f899907e","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098"},{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"7efc62d2-efa9-43d5-98c8-c8ea4967cb90","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/7efc62d2-efa9-43d5-98c8-c8ea4967cb90 204 54ms","method":"DELETE","requestID":"3bd968c0-0657-11ef-8390-917b0c22016f","responseTime":54,"status":204,"url":"/peerconnections/7efc62d2-efa9-43d5-98c8-c8ea4967cb90"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc0285ad4-2e86-4987-9c18-7eb574a15098","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27541cb5-f1af-44fe-a904-4de2f7b827b3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.9030807} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":294,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.941849,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c0285ad4-2e86-4987-9c18-7eb574a15098","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3beb1c00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling 200 15ms","method":"POST","requestID":"3beb1c00-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/c0285ad4-2e86-4987-9c18-7eb574a15098/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff34efb1a-296d-492e-ae3c-ac2558c75e6c': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff34efb1a-296d-492e-ae3c-ac2558c75e6c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"23f2424e-8704-4800-975b-9750979c42c7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.9176364} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F4a443ce7-23fb-4b40-ac6a-aba91d741702","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ffcc3fcf-af3a-47e9-b230-f022d0399afa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.9178317} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e1bca1b-6966-4a7a-acec-f1ba9518ae84","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415720.917923} 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":"292a09ed0ee02f94bb55548e2ee13501"},"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:45964","level":"info","msg":"Sent response.","req_id":295,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.488176,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3bedb410-0657-11ef-8390-917b0c22016f"},"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/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling 200 14ms","method":"POST","requestID":"3bedb410-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/4a443ce7-23fb-4b40-ac6a-aba91d741702/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.218","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"292a09ed0ee02f94bb55548e2ee13501"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1996","request_time":"2.376","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2cf311d834cd64608937c738703ecc61"} experiment-1 | {"level":"info","message":"DELETE /experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c 204 214ms","method":"DELETE","requestID":"292a09ed0ee02f94bb55548e2ee13501","responseTime":214,"status":204,"url":"/experiments/f34efb1a-296d-492e-ae3c-ac2558c75e6c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 170ms","method":"POST","requestID":"606d66f5c250708cf6bfaa152fd6824c","responseTime":170,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.175","http_referrer":"","http_user_agent":"node-fetch","requestID":"606d66f5c250708cf6bfaa152fd6824c"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 169ms","method":"POST","requestID":"dc643c705668fd5e2b6acfc1f899907e","responseTime":169,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch","requestID":"dc643c705668fd5e2b6acfc1f899907e"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"778af6ccaf32b2e60c467c607efdfdc7","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/4a443ce7-23fb-4b40-ac6a-aba91d741702' closed"} gateway-1 | {"time_local":"29/Apr/2024:18:35:20 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2315","request_time":"0.916","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"530f7a2fa2fed3638c07dd5c5a52fbef"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":296,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.860561,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:20Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415720,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMH0.j2EhFKuLsBqhUijf-3NZPegmgZJm7WTAJSGcQocamys"} 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":"778af6ccaf32b2e60c467c607efdfdc7"},"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/c0285ad4-2e86-4987-9c18-7eb574a15098' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e8317ed2-5b6d-44c8-88a9-463e922e10a8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.008695} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"778af6ccaf32b2e60c467c607efdfdc7"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"657292cd-6a95-4ea4-8102-7ca035c87b8f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0140834} 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":"778af6ccaf32b2e60c467c607efdfdc7"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0bf18b53-71d3-4f45-971f-d15ae4255076","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.026482} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bb336425-913c-4b25-a008-6d3a90d046b6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.026751} 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":"778af6ccaf32b2e60c467c607efdfdc7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"1827be14-254c-4d6f-9c7c-6a3dbd10854c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0315711} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"778af6ccaf32b2e60c467c607efdfdc7"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"778af6ccaf32b2e60c467c607efdfdc7"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"778af6ccaf32b2e60c467c607efdfdc7","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e9c5ea83118c3517a0a60b07abb66a75","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":297,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.654825,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"e9c5ea83118c3517a0a60b07abb66a75"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"862f1a50-c870-467c-a03f-4f9c754aa3bd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0556746} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e9c5ea83118c3517a0a60b07abb66a75"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"325e2a6d-c6ad-40d7-bafe-a034945e35dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0610206} 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":"e9c5ea83118c3517a0a60b07abb66a75"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c24f8c7a-ffb9-46d9-927d-f95b458da058","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0707173} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f19b54cd-1cf8-4c59-ad72-5777a04d91bf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0708718} 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":"e9c5ea83118c3517a0a60b07abb66a75"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"1bc28194-6643-432d-b602-bf5d34af25bc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.0751538} 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":"e9c5ea83118c3517a0a60b07abb66a75"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.042","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e9c5ea83118c3517a0a60b07abb66a75"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"e9c5ea83118c3517a0a60b07abb66a75","responseTime":38,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"53e13d77e26f23721b398bffebc0a974","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2569d2ab061f178c87f8bcfe339a73ed","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":298,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.894135,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"53e13d77e26f23721b398bffebc0a974"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":299,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.542847,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"2569d2ab061f178c87f8bcfe339a73ed"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"d1fa16b5-ee48-4a3d-b4fa-00afe7463324","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.5591137} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53e13d77e26f23721b398bffebc0a974"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"f30b9411-2de4-4200-9541-5822d456a64c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.559677} 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":"2569d2ab061f178c87f8bcfe339a73ed"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6f86eb23-5b20-46d8-bdc9-305c226355ff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.5645146} 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":"53e13d77e26f23721b398bffebc0a974"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"829d0615-1a1f-4372-88ee-403c41a7ebf5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.5684843} 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":"2569d2ab061f178c87f8bcfe339a73ed"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"44169db8-c5c8-4ef5-acee-f42a2b59d212","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.5699694} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2569d2ab061f178c87f8bcfe339a73ed"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.030","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2569d2ab061f178c87f8bcfe339a73ed"} device-1 | {"level":"info","message":"PATCH /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679 200 23ms","method":"PATCH","requestID":"2569d2ab061f178c87f8bcfe339a73ed","responseTime":23,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"42e6615416057a1c873efde98bd1634a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":300,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.685251,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"42e6615416057a1c873efde98bd1634a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"9856bba1-269d-43d4-8813-c6e9f91dd30f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.592348} 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":"53e13d77e26f23721b398bffebc0a974"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d9dcece3-0b0f-4273-8235-7e9697a60658 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"53e13d77e26f23721b398bffebc0a974"} device-1 | {"level":"info","message":"PATCH /devices/d9dcece3-0b0f-4273-8235-7e9697a60658 200 49ms","method":"PATCH","requestID":"53e13d77e26f23721b398bffebc0a974","responseTime":49,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b900eecab67f1c50a327976a0d9b2acf","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/websocket 200 27ms","method":"POST","requestID":"42e6615416057a1c873efde98bd1634a","responseTime":27,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/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":"42e6615416057a1c873efde98bd1634a"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":301,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.437797,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"b900eecab67f1c50a327976a0d9b2acf"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d9dcece3-0b0f-4273-8235-7e9697a60658/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":"b900eecab67f1c50a327976a0d9b2acf"} device-1 | {"level":"info","message":"POST /devices/d9dcece3-0b0f-4273-8235-7e9697a60658/websocket 200 14ms","method":"POST","requestID":"b900eecab67f1c50a327976a0d9b2acf","responseTime":14,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6ee40c267990abf17d9390492c5ce4ef","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":302,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.032762,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"6ee40c267990abf17d9390492c5ce4ef"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"6c75c71b-1939-4918-a984-1fc3d7e0e111","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.6464553} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6ee40c267990abf17d9390492c5ce4ef"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6ee40c267990abf17d9390492c5ce4ef"} device-1 | {"level":"info","message":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? 200 13ms","method":"GET","requestID":"6ee40c267990abf17d9390492c5ce4ef","responseTime":13,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"69fc486f479d3eb396dd2c810f24f227","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":303,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.681586,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"69fc486f479d3eb396dd2c810f24f227"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"a1e6cc69-b25b-42a3-9b95-3f96ff1d4566","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.6640337} 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":"69fc486f479d3eb396dd2c810f24f227"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"69fc486f479d3eb396dd2c810f24f227"} device-1 | {"level":"info","message":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? 200 13ms","method":"GET","requestID":"69fc486f479d3eb396dd2c810f24f227","responseTime":13,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5d185788d4139c0aca4d0a1bcc0113d8","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:45964","level":"info","msg":"Received request.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":304,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.22198,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"5d185788d4139c0aca4d0a1bcc0113d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"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:45964","level":"info","msg":"Received request.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":305,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.625911,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"3c69e8f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":306,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.625816,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"3c6a3710-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"c6606fda-8880-4fbc-a397-918a87591fe8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.7351618} 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":"3c69e8f0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"cc42931e-fdf9-4937-ac6c-384669a75bbf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.7358844} 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":"3c6a3710-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? 200 18ms","method":"GET","requestID":"3c69e8f0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? 200 18ms","method":"GET","requestID":"3c6a3710-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":307,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.430458,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"3c7581b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":12}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":308,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.594701,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"3c75f6e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"014bec02-bcc9-40f7-a0aa-2219b8b13145","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8289404} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Received request.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} 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":"3c7581b0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"6ac8848f-ddb5-4da6-91ce-21bef556a9c9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8315551} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99bce069-24d9-400d-aa96-73b387045aff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8321939} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Sent response.","req_id":309,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.256207,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? 200 34ms","method":"GET","requestID":"3c7581b0-0657-11ef-8390-917b0c22016f","responseTime":34,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679?"} 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":"3c75f6e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 25ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c764500-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F265c3b9d-c19b-42a1-bbff-68cefc2896e0#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F265c3b9d-c19b-42a1-bbff-68cefc2896e0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f4e1e12a-a723-4581-ac70-ce3d2709f40a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8375618} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b67d0e40-de93-479a-a404-c0a408220e22","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8379078} 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":"5d185788d4139c0aca4d0a1bcc0113d8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? 200 39ms","method":"GET","requestID":"3c75f6e0-0657-11ef-8390-917b0c22016f","responseTime":39,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling 200 38ms","method":"POST","requestID":"3c764500-0657-11ef-8390-917b0c22016f","responseTime":38,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8bca50d9-cb7e-43a6-9bfc-f4991f80f185","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.855253} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":310,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.492268,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"785","request_time":"0.187","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5d185788d4139c0aca4d0a1bcc0113d8"} experiment-1 | {"level":"info","message":"POST /experiments? 201 183ms","method":"POST","requestID":"5d185788d4139c0aca4d0a1bcc0113d8","responseTime":183,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c7c8690-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b923615f-8b01-45f3-b2dd-0f16a025051c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8572893} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":311,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.413813,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c7cfbc0-0657-11ef-8390-917b0c22016f"},"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/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling 200 15ms","method":"POST","requestID":"3c7c8690-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0a015d1d398a2132bedb5fb58210ef3c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling 200 14ms","method":"POST","requestID":"3c7cfbc0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":312,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.895934,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"0a015d1d398a2132bedb5fb58210ef3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"60e22259-98c3-4d59-b780-a7fa992a64d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8755877} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":313,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.976342,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c7f93d0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.026448763Z"}]},"request_id":"7350d3d5-df36-47b8-b608-9b0002ffa745","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.8781304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0a015d1d398a2132bedb5fb58210ef3c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling 200 15ms","method":"POST","requestID":"3c7f93d0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0a015d1d398a2132bedb5fb58210ef3c"} device-1 | {"level":"info","message":"GET /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679? 200 18ms","method":"GET","requestID":"0a015d1d398a2132bedb5fb58210ef3c","responseTime":18,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{},"role":"device1","serviceId":"file_producer","uuid":"6ddfe0ba-aac1-4e22-a0cd-cfb1ba06c538"},{"config":{},"role":"device2","serviceId":"file_consumer","uuid":"6ee3ac4a-9372-4085-bd69-dfce1c8ee6d0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/file","uuid":"85760723-6d26-455e-9c12-5a34d92c8f91"}]},"level":"info","message":"Built pairwise service configurations"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"url":"http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"779b641300af6634795c749ea4c2bdc4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":314,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.814591,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"3c827a00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":315,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.618986,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415721,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMX0.NYJUs8nmqdDcTmA03Q5MMWubltyF606FIyTLm-DLAOE"} 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":"779b641300af6634795c749ea4c2bdc4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:21.070698501Z"}]},"request_id":"de867656-e387-4ba8-8767-f963b37baea4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.898635} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"779b641300af6634795c749ea4c2bdc4"},"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":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"779b641300af6634795c749ea4c2bdc4"} device-1 | {"level":"info","message":"GET /devices/d9dcece3-0b0f-4273-8235-7e9697a60658? 200 14ms","method":"GET","requestID":"779b641300af6634795c749ea4c2bdc4","responseTime":14,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c47618b8-2fd1-49de-bbeb-537f463962dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.9067438} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"216b3f8b-7934-443c-b4a9-71ed52850b3d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.907129} 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":"3c827a00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb'"} 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 34ms","method":"POST","requestID":"3c827a00-0657-11ef-8390-917b0c22016f","responseTime":34,"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":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4a218fe3-7b90-478a-afa7-ad4d389a1c09","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.962904} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":316,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.511307,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c8d2860-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"2124a12f4cdfe4634658b4b45d40b30c","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connecting","url":"http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"new","url":"http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling 200 11ms","method":"POST","requestID":"3c8d2860-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"2124a12f4cdfe4634658b4b45d40b30c","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:21 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"2124a12f4cdfe4634658b4b45d40b30c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:21Z"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"aeb06dfb-f992-4301-af04-38ef707d7e00","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415721.9768538} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":317,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.193018,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:21Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c8f4b40-0657-11ef-8390-917b0c22016f"},"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/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling 200 15ms","method":"POST","requestID":"3c8f4b40-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","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/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"bd0aed713b808daf48ede399d635d9fa","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa1fdf8ee-946b-4c94-89dc-9d57d6a711fb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eafa0d65-a135-4edb-b174-03bdbf24292c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.0256972} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":318,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.559547,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","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":"3c969e40-0657-11ef-8390-917b0c22016f"},"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/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb 200 10ms","method":"GET","requestID":"3c969e40-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 31ms","method":"POST","requestID":"bd0aed713b808daf48ede399d635d9fa","responseTime":31,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"bd0aed713b808daf48ede399d635d9fa"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"69e3e45b-0a0c-4113-9021-a2075c31d176","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.0517075} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":319,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.54858,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c9abcf0-0657-11ef-8390-917b0c22016f"},"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/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling 200 10ms","method":"POST","requestID":"3c9abcf0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1208da19-dafb-4463-9852-61478988a6bc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.0653567} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":320,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.475914,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3c9cb8c0-0657-11ef-8390-917b0c22016f"},"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/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling 200 10ms","method":"POST","requestID":"3c9cb8c0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c2f4a75cbedd0aac1d8a06b371f1ba92","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":321,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.155464,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415722,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng"} 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":"c2f4a75cbedd0aac1d8a06b371f1ba92"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} experiment-1 | {"level":"info","message":"GET /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0 200 17ms","method":"GET","requestID":"c2f4a75cbedd0aac1d8a06b371f1ba92","responseTime":17,"status":200,"url":"/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0 HTTP/1.1","status": "200","body_bytes_sent":"858","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c2f4a75cbedd0aac1d8a06b371f1ba92"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1457ac1b8cdf23b939a935a7b48dbdf3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":322,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.840642,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415722,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng"} 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":"1457ac1b8cdf23b939a935a7b48dbdf3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":323,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.227244,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415722,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng"} 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":"3cb96880-0657-11ef-8390-917b0c22016f"},"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/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"43c64ed49e10d12a8e1f9aae0baba96a","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa1fdf8ee-946b-4c94-89dc-9d57d6a711fb': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fa1fdf8ee-946b-4c94-89dc-9d57d6a711fb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"0a576666-2f64-493c-bb5c-e1b1e29ce051","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.276834} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"}}},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bac765a-6188-4c34-87a5-5edc9568428a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.2770028} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"27822305863e924650348f69a6266c07","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"remoteServiceId":"file_consumer","serviceId":"file_producer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"connected","url":"http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679"},{"config":{"services":[{"remoteServiceId":"file_producer","serviceId":"file_consumer","serviceType":"http://api.goldi-labs.de/serviceTypes/file"}]},"status":"closed","url":"http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"}}},"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":"3cb96880-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"data":{"peerconnection":"a1fdf8ee-946b-4c94-89dc-9d57d6a711fb","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/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb 204 71ms","method":"DELETE","requestID":"3cb96880-0657-11ef-8390-917b0c22016f","responseTime":71,"status":204,"url":"/peerconnections/a1fdf8ee-946b-4c94-89dc-9d57d6a711fb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa7e765c8-1aa6-40ed-b61e-3901c16a4679","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fd2993e3-16c3-44d1-aa05-a81a3347af72","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.3526132} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":324,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.576092,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3cc83590-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling 200 16ms","method":"POST","requestID":"3cc83590-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/a7e765c8-1aa6-40ed-b61e-3901c16a4679/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F265c3b9d-c19b-42a1-bbff-68cefc2896e0': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F265c3b9d-c19b-42a1-bbff-68cefc2896e0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"afc84196-525e-4120-97cd-a3dad2215baa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.3636024} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e80a5791-c6f2-4398-80cd-27a1608536c5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.3640575} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 22ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1457ac1b8cdf23b939a935a7b48dbdf3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd9dcece3-0b0f-4273-8235-7e9697a60658","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"360eba4f-e735-4d4f-8a0d-ef9a236c3b21","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.3724241} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":325,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.689256,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3ccb42d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling 200 16ms","method":"POST","requestID":"3ccb42d0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/d9dcece3-0b0f-4273-8235-7e9697a60658/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.207","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1457ac1b8cdf23b939a935a7b48dbdf3"} experiment-1 | {"level":"info","message":"DELETE /experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0 204 202ms","method":"DELETE","requestID":"1457ac1b8cdf23b939a935a7b48dbdf3","responseTime":202,"status":204,"url":"/experiments/265c3b9d-c19b-42a1-bbff-68cefc2896e0"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2315","request_time":"0.826","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"76a1668fdbc1338ba7ed396609b095d2"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2315","request_time":"0.815","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"84e10984a5f045674a39dfbff52cd36e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 159ms","method":"POST","requestID":"43c64ed49e10d12a8e1f9aae0baba96a","responseTime":159,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.163","http_referrer":"","http_user_agent":"node-fetch","requestID":"43c64ed49e10d12a8e1f9aae0baba96a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 159ms","method":"POST","requestID":"27822305863e924650348f69a6266c07","responseTime":159,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.164","http_referrer":"","http_user_agent":"node-fetch","requestID":"27822305863e924650348f69a6266c07"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ed2f44fb3522a2a461cd0447b3889f74","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d9dcece3-0b0f-4273-8235-7e9697a60658' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":326,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.917067,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415722,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng"} 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":"ed2f44fb3522a2a461cd0447b3889f74"},"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/a7e765c8-1aa6-40ed-b61e-3901c16a4679' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"d3642eb2-c638-43f5-98de-6d1c545d7a05","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.4669123} 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":"ed2f44fb3522a2a461cd0447b3889f74"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a379461f-00c0-43f7-aea4-226ae30ec10d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.4748724} 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":"ed2f44fb3522a2a461cd0447b3889f74"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"ea1127af-f409-4d4b-9d16-ea1df904d3aa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.4850433} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2b98da43-e600-4bf7-9f5e-db364345d1df","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.4852767} 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":"ed2f44fb3522a2a461cd0447b3889f74"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.485010708Z"}]},"request_id":"fe27882f-01bb-41b6-be79-c1d883912c50","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.4910455} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ed2f44fb3522a2a461cd0447b3889f74"},"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":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.060","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ed2f44fb3522a2a461cd0447b3889f74"} device-1 | {"level":"info","message":"POST /devices? 201 52ms","method":"POST","requestID":"ed2f44fb3522a2a461cd0447b3889f74","responseTime":52,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f8d0063ecd1a493d26ff60be5714d345","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":327,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.888147,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:22Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415722,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyMn0.yNUxsvOqXfmAaHW2ecMhWHR1YGB6rXQMcwXP0QcQRng"} 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":"f8d0063ecd1a493d26ff60be5714d345"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"e9ec625a-cfa7-4d8c-9be1-19867d113177","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.5187905} 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":"f8d0063ecd1a493d26ff60be5714d345"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9b7fe281-e3e4-46fd-ad47-c0da03fca2f0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.5250468} 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":"f8d0063ecd1a493d26ff60be5714d345"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"1f4b286e-2d2f-492b-89e3-7a60f4867be1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.535213} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"aaa9e5d6-f12f-4d9b-911b-7cc96cbf007d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.535309} 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":"f8d0063ecd1a493d26ff60be5714d345"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.535187014Z"}]},"request_id":"863d3230-27aa-4be8-b5f7-68997d7f75a1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415722.5401902} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f8d0063ecd1a493d26ff60be5714d345"},"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":"29/Apr/2024:18:35:22 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.048","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f8d0063ecd1a493d26ff60be5714d345"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"f8d0063ecd1a493d26ff60be5714d345","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"807cf3d1c9970cd72f9845f0480a4bdb","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/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":"807cf3d1c9970cd72f9845f0480a4bdb"} device-1 | {"level":"info","message":"OPTIONS /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/websocket 200 1ms","method":"OPTIONS","requestID":"807cf3d1c9970cd72f9845f0480a4bdb","responseTime":1,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6397a5a292e63727506773fb4a56fcb3","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/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":"6397a5a292e63727506773fb4a56fcb3"} device-1 | {"level":"info","message":"OPTIONS /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/websocket 200 1ms","method":"OPTIONS","requestID":"6397a5a292e63727506773fb4a56fcb3","responseTime":1,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e519e46d6e87f956cf0487ce3cf73d14","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3cf3b8238533a61da3c2f7b68a5ed1c6","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":328,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.371426,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"e519e46d6e87f956cf0487ce3cf73d14"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":329,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.424529,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3cf3b8238533a61da3c2f7b68a5ed1c6"},"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":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.069","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e519e46d6e87f956cf0487ce3cf73d14"} device-1 | {"level":"info","message":"POST /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/websocket 200 60ms","method":"POST","requestID":"e519e46d6e87f956cf0487ce3cf73d14","responseTime":60,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.079","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"3cf3b8238533a61da3c2f7b68a5ed1c6"} device-1 | {"level":"info","message":"POST /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/websocket 200 71ms","method":"POST","requestID":"3cf3b8238533a61da3c2f7b68a5ed1c6","responseTime":71,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"43f8493a40701fb2521bdb9bc8e5426b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":330,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.314029,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"43f8493a40701fb2521bdb9bc8e5426b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.485010708Z"}]},"request_id":"ace2ae3e-cfb1-45eb-a8e0-d97044ddbcdf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.626621} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43f8493a40701fb2521bdb9bc8e5426b"},"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 200 18ms","method":"GET","requestID":"43f8493a40701fb2521bdb9bc8e5426b","responseTime":18,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 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":"43f8493a40701fb2521bdb9bc8e5426b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"16588a843dbc22a0a109bcd44a729a97","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":331,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.153811,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"16588a843dbc22a0a109bcd44a729a97"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.535187014Z"}]},"request_id":"0c2ce6fd-c55e-4297-b0f1-fac5eaa89998","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.6524687} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"16588a843dbc22a0a109bcd44a729a97"},"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/eed53312-0bab-4058-bbf9-3b5017e539b6? 200 18ms","method":"GET","requestID":"16588a843dbc22a0a109bcd44a729a97","responseTime":18,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eed53312-0bab-4058-bbf9-3b5017e539b6? 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":"16588a843dbc22a0a109bcd44a729a97"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f245206123dac47ec6a96966e9e648c5","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:45964","level":"info","msg":"Received request.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":332,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.261803,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"f245206123dac47ec6a96966e9e648c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"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:45964","level":"info","msg":"Received request.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":333,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740234,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3e3421a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":334,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.074384,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3e346fc0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.485010708Z"}]},"request_id":"66e300d2-9127-4daa-a60a-cccd924b2cde","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.743431} 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":"3e3421a0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.535187014Z"}]},"request_id":"2807bc4a-68c4-4269-9651-36aa8e1237ec","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.7445064} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e346fc0-0657-11ef-8390-917b0c22016f"},"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 200 22ms","method":"GET","requestID":"3e3421a0-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eed53312-0bab-4058-bbf9-3b5017e539b6? 200 21ms","method":"GET","requestID":"3e346fc0-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":335,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.185933,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3e3fe170-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":336,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.053617,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Received request.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3e402f90-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Sent response.","req_id":337,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.352996,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a61fbbbf-c06e-4e1f-ab5b-f37bb72297c1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8197346} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e407db0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling 200 19ms","method":"POST","requestID":"3e407db0-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.485010708Z"}]},"request_id":"c3a1df44-5f9a-4f5a-872f-f7016fe11e2a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8290846} 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":"3e3fe170-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.535187014Z"}]},"request_id":"fb81cf71-aaf8-4e8d-906f-79f34a68756e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8330386} 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":"3e402f90-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd5eadc98-71f2-413c-b9bd-a42e03db2183#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd5eadc98-71f2-413c-b9bd-a42e03db2183","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"9205552b-656a-459b-87b5-c815727d9831","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8390653} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be478ce6-7dd0-49bf-a4da-b3c6c60bfecd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.839537} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} 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":"f245206123dac47ec6a96966e9e648c5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"88ce2f95-e0db-4a0f-8a93-508f444c0e03","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.844129} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":338,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.602736,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e444e40-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"GET /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 200 40ms","method":"GET","requestID":"3e3fe170-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/eed53312-0bab-4058-bbf9-3b5017e539b6? 200 40ms","method":"GET","requestID":"3e402f90-0657-11ef-8390-917b0c22016f","responseTime":40,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling 200 16ms","method":"POST","requestID":"3e444e40-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 191ms","method":"POST","requestID":"f245206123dac47ec6a96966e9e648c5","responseTime":191,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.198","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f245206123dac47ec6a96966e9e648c5"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fd4cd359-07a4-49cb-b063-b4c5e0bc76ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8619943} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":339,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.789137,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e470d60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d883b21f8ba859e82612b5d9d1e02d12","responseTime":5,"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling 200 16ms","method":"POST","requestID":"3e470d60-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":340,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.229811,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d883b21f8ba859e82612b5d9d1e02d12"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f51c4735-0b86-4743-9567-1840100b43e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.878126} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.485010708Z"}]},"request_id":"0b6eb197-77dd-402e-afd3-027604ded5b5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8784711} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d883b21f8ba859e82612b5d9d1e02d12"},"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:45964","level":"info","msg":"Sent response.","req_id":341,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.170951,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e49f390-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 200 16ms","method":"GET","requestID":"d883b21f8ba859e82612b5d9d1e02d12","responseTime":16,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12? 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":"d883b21f8ba859e82612b5d9d1e02d12"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling 200 12ms","method":"POST","requestID":"3e49f390-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"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":"42adbfd7-85a5-4810-b9e2-8b27455b69db"},{"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":"d394e91a-6d66-4a60-a983-ad3ee24b61fa"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8cc7cc8f-c902-4d8d-9996-6a57105f2706"}]},"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/eed53312-0bab-4058-bbf9-3b5017e539b6"},{"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"28358d865ea5f57806bfc0d7f4f68e42","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":342,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.566338,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"3e4c6490-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":343,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.747515,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415724,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNH0.Jimnvf1ThZPsyCObodyyRRtS671ry3gbVtH9HZ2B9bQ"} 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":"28358d865ea5f57806bfc0d7f4f68e42"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:22.535187014Z"}]},"request_id":"790e8c5a-0bd5-4a4d-a6b8-7ac5754ee236","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.8999681} 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":"28358d865ea5f57806bfc0d7f4f68e42"},"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":"29/Apr/2024:18:35:24 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/eed53312-0bab-4058-bbf9-3b5017e539b6? 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":"28358d865ea5f57806bfc0d7f4f68e42"} device-1 | {"level":"info","message":"GET /devices/eed53312-0bab-4058-bbf9-3b5017e539b6? 200 13ms","method":"GET","requestID":"28358d865ea5f57806bfc0d7f4f68e42","responseTime":13,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a0d491f6-5cfc-449a-8e10-1e1744ee751a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.904494} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9f4272f1-81f8-41db-93aa-63bf3efe5002","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.9047816} 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":"3e4c6490-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/4d132ba6-e45b-4636-abb1-a8379f751697'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697'"} 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":"3e4c6490-0657-11ef-8390-917b0c22016f","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a7349262-366d-40be-81dc-18b7cd00f640","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.9694054} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":344,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.297523,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e57d640-0657-11ef-8390-917b0c22016f"},"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling 200 11ms","method":"POST","requestID":"3e57d640-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7775de5-7508-40d8-9e04-1bce445edb36","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415724.9811683} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":345,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.016664,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:24Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e59d210-0657-11ef-8390-917b0c22016f"},"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/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling 200 8ms","method":"POST","requestID":"3e59d210-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d132ba6-e45b-4636-abb1-a8379f751697","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7b9963fae35391b8e2d641fd03728ee0","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/eed53312-0bab-4058-bbf9-3b5017e539b6"},{"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"7b9963fae35391b8e2d641fd03728ee0","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"7b9963fae35391b8e2d641fd03728ee0"} device-1 | {"data":{"peerconnection":"4d132ba6-e45b-4636-abb1-a8379f751697","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"4d132ba6-e45b-4636-abb1-a8379f751697","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/4d132ba6-e45b-4636-abb1-a8379f751697' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d132ba6-e45b-4636-abb1-a8379f751697","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"93ae8cd048cd5fa092f257e0ad0da80e","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/eed53312-0bab-4058-bbf9-3b5017e539b6"},{"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d132ba6-e45b-4636-abb1-a8379f751697","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e467e834-c58c-4884-b7e4-8ada2f87e4e8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.1925535} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":346,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.159818,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697","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":"3e79dd30-0657-11ef-8390-917b0c22016f"},"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/4d132ba6-e45b-4636-abb1-a8379f751697 200 10ms","method":"GET","requestID":"3e79dd30-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 44ms","method":"POST","requestID":"93ae8cd048cd5fa092f257e0ad0da80e","responseTime":44,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.047","http_referrer":"","http_user_agent":"node-fetch","requestID":"93ae8cd048cd5fa092f257e0ad0da80e"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ae5c603-c1a1-44a7-a3b9-6a044457e42c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.2298744} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":347,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.084659,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e7fa990-0657-11ef-8390-917b0c22016f"},"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/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling 200 12ms","method":"POST","requestID":"3e7fa990-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"78affc0f-8af0-4267-9d3f-f56fe2383589","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.2431483} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":348,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.110475,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e81cc70-0657-11ef-8390-917b0c22016f"},"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling 200 8ms","method":"POST","requestID":"3e81cc70-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"78f034ccc3cb755cfd5618ff305782a9","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":349,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.800682,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415725,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8"} 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":"78f034ccc3cb755cfd5618ff305782a9"},"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/d5eadc98-71f2-413c-b9bd-a42e03db2183"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"78f034ccc3cb755cfd5618ff305782a9"} experiment-1 | {"level":"info","message":"GET /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183 200 17ms","method":"GET","requestID":"78f034ccc3cb755cfd5618ff305782a9","responseTime":17,"status":200,"url":"/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"d3dcc25b3aaf76dc2da3ed24c3ac17ab","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":350,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.174118,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415725,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8"} 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":"d3dcc25b3aaf76dc2da3ed24c3ac17ab"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":351,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.805697,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415725,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8"} 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":"3e8f12e0-0657-11ef-8390-917b0c22016f"},"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/4d132ba6-e45b-4636-abb1-a8379f751697' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"4d132ba6-e45b-4636-abb1-a8379f751697","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d132ba6-e45b-4636-abb1-a8379f751697': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F4d132ba6-e45b-4636-abb1-a8379f751697","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"43286a06-9b0b-49ac-a754-51d02174fc65","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.3442328} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b0fc85ce-66f9-4cf1-9803-07abbd381a96","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.3444057} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"43c67adaf83a16aaff0478bd76283452","responseTime":1,"status":200,"url":"/auth"} 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":"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":"3e8f12e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} 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/eed53312-0bab-4058-bbf9-3b5017e539b6"},{"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"eb3762fd3c624d6b21e12e93a708314a","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6"},{"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697 204 59ms","method":"DELETE","requestID":"3e8f12e0-0657-11ef-8390-917b0c22016f","responseTime":59,"status":204,"url":"/peerconnections/4d132ba6-e45b-4636-abb1-a8379f751697"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12'"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Feed53312-0bab-4058-bbf9-3b5017e539b6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"770ec4ea-e803-4c80-8437-5f40f77bb285","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.4186087} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":352,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.631143,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/eed53312-0bab-4058-bbf9-3b5017e539b6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e9c0b30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling 200 17ms","method":"POST","requestID":"3e9c0b30-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/eed53312-0bab-4058-bbf9-3b5017e539b6/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd5eadc98-71f2-413c-b9bd-a42e03db2183': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fd5eadc98-71f2-413c-b9bd-a42e03db2183","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"935c021f-fb63-431f-a1ae-85472c5ac655","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.430465} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"790702a7-9917-42dc-a4eb-5f9ac2afc588","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.4309428} 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":"d3dcc25b3aaf76dc2da3ed24c3ac17ab"},"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:45964","level":"info","msg":"Received request.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ad89ed79-60de-4773-8169-23afa741734a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.440257} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":353,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.231301,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"3e9f1870-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling 200 16ms","method":"POST","requestID":"3e9f1870-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.195","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d3dcc25b3aaf76dc2da3ed24c3ac17ab"} experiment-1 | {"level":"info","message":"DELETE /experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183 204 191ms","method":"DELETE","requestID":"d3dcc25b3aaf76dc2da3ed24c3ac17ab","responseTime":191,"status":204,"url":"/experiments/d5eadc98-71f2-413c-b9bd-a42e03db2183"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 157ms","method":"POST","requestID":"43c67adaf83a16aaff0478bd76283452","responseTime":157,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.161","http_referrer":"","http_user_agent":"node-fetch","requestID":"43c67adaf83a16aaff0478bd76283452"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 156ms","method":"POST","requestID":"eb3762fd3c624d6b21e12e93a708314a","responseTime":156,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.162","http_referrer":"","http_user_agent":"node-fetch","requestID":"eb3762fd3c624d6b21e12e93a708314a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9bbcecef5ee644481cabade45e0d661a","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2436","request_time":"0.937","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"e6f3658560a08de688e9eed5e6a4df4d"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":354,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.987669,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2303","request_time":"0.922","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"ede0f1a26a0d8b1adf10de08453d5aa5"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415725,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8"} 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":"9bbcecef5ee644481cabade45e0d661a"},"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/094b4b99-8b7d-4e48-8c20-a5fd9f0a4c12' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"bbbb7e9e-4f48-49f4-9c63-20ac924d9629","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5222716} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9bbcecef5ee644481cabade45e0d661a"},"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/eed53312-0bab-4058-bbf9-3b5017e539b6' 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2240a1eb-1ae0-45a3-baa7-3460110e6792","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5274358} 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":"9bbcecef5ee644481cabade45e0d661a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"d3373bd1-dc8d-469c-982c-b0f153acb2d1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5375848} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fec2f2b0-49dd-467c-9f4e-c7b116b0a5eb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5377643} 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":"9bbcecef5ee644481cabade45e0d661a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.537556930Z"}]},"request_id":"03522e38-165f-429f-8383-a22461bf8ee3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5435114} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9bbcecef5ee644481cabade45e0d661a"},"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":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9bbcecef5ee644481cabade45e0d661a"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"9bbcecef5ee644481cabade45e0d661a","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0f965f74a9432d477b95028d8e68a795","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":355,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.945506,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:25Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415725,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyNX0.aOppctK7grVA5Cqx-fYelgR2fppkf-ePTmTZNT7eQE8"} 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":"0f965f74a9432d477b95028d8e68a795"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ebfef779-34ed-4341-afab-c036c092c1ec","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5748854} 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":"0f965f74a9432d477b95028d8e68a795"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"24c3620a-4ffe-4348-9558-fa8efd24c65f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5813155} 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":"0f965f74a9432d477b95028d8e68a795"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"78af9526-064f-4a9b-bc17-ea0a7cc74ed1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5928462} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dc7e73cf-8e7b-4f7a-8e51-789eccd70cc4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5929732} 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":"0f965f74a9432d477b95028d8e68a795"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.592826200Z"}]},"request_id":"9fdb36bc-ab9b-4138-883b-3ca0cab28a6f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415725.5981617} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0f965f74a9432d477b95028d8e68a795"},"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":"29/Apr/2024:18:35:25 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0f965f74a9432d477b95028d8e68a795"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"0f965f74a9432d477b95028d8e68a795","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"068b9beaf52daba28d25713042071e84","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/01f35667-7c75-417b-9c9f-4daac58f60ff/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":"068b9beaf52daba28d25713042071e84"} device-1 | {"level":"info","message":"OPTIONS /devices/01f35667-7c75-417b-9c9f-4daac58f60ff/websocket 200 1ms","method":"OPTIONS","requestID":"068b9beaf52daba28d25713042071e84","responseTime":1,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b094b7a3bf66b5e2e0412564619cdda5","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":356,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.136469,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"b094b7a3bf66b5e2e0412564619cdda5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"12346fcdc1eafba5f4bbb2aa4c8c7dda","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/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":"12346fcdc1eafba5f4bbb2aa4c8c7dda"} device-1 | {"level":"info","message":"OPTIONS /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/websocket 200 1ms","method":"OPTIONS","requestID":"12346fcdc1eafba5f4bbb2aa4c8c7dda","responseTime":1,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6c78b2907b344a3fe6cf9b1e2091971c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":357,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.334332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"6c78b2907b344a3fe6cf9b1e2091971c"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff/websocket 200 40ms","method":"POST","requestID":"b094b7a3bf66b5e2e0412564619cdda5","responseTime":40,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/01f35667-7c75-417b-9c9f-4daac58f60ff/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"b094b7a3bf66b5e2e0412564619cdda5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6c78b2907b344a3fe6cf9b1e2091971c"} device-1 | {"level":"info","message":"POST /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/websocket 200 27ms","method":"POST","requestID":"6c78b2907b344a3fe6cf9b1e2091971c","responseTime":27,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e19bdb41c8ea79cb0468328a50cc10ba","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":358,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.653479,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"e19bdb41c8ea79cb0468328a50cc10ba"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.537556930Z"}]},"request_id":"a064df2b-f597-477c-b9de-eea154dcaa6b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.636844} 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":"e19bdb41c8ea79cb0468328a50cc10ba"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff? 200 15ms","method":"GET","requestID":"e19bdb41c8ea79cb0468328a50cc10ba","responseTime":15,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/01f35667-7c75-417b-9c9f-4daac58f60ff? 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":"e19bdb41c8ea79cb0468328a50cc10ba"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b62bc28eca760af9350c8d1350e315e6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":359,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.340054,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"b62bc28eca760af9350c8d1350e315e6"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.592826200Z"}]},"request_id":"9f114b13-8b35-4a74-a714-244a6c65f2fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.657832} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b62bc28eca760af9350c8d1350e315e6"},"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":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 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":"b62bc28eca760af9350c8d1350e315e6"} device-1 | {"level":"info","message":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 200 16ms","method":"GET","requestID":"b62bc28eca760af9350c8d1350e315e6","responseTime":16,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cdb2f7f8f75661992982611ffadf0962","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:45964","level":"info","msg":"Received request.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":360,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.64356,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"cdb2f7f8f75661992982611ffadf0962"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"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:45964","level":"info","msg":"Received request.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":361,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188992,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"3ffd48e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":362,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.32768,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"3ffd9700-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.537556930Z"}]},"request_id":"e1554b87-5e9e-4643-bed5-b1f254da4bae","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.739701} 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":"3ffd48e0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.592826200Z"}]},"request_id":"395cf2fd-da69-4aae-8128-752cc2e74784","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.740855} 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":"3ffd9700-0657-11ef-8390-917b0c22016f"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff? 200 23ms","method":"GET","requestID":"3ffd48e0-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 200 22ms","method":"GET","requestID":"3ffd9700-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":363,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.377062,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"400a4130-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":364,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.201795,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Received request.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"400a8f50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:35848","level":"info","msg":"Sent response.","req_id":365,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.31739,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a88c369e-9743-4837-9157-c18290578c86","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8260963} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"400ab660-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":14}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.537556930Z"}]},"request_id":"6df6861b-c67e-4904-a98e-5fd5fa8f62cd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8326068} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"level":"info","message":"POST /relations/query 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"400a4130-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.592826200Z"}]},"request_id":"d7b3bf57-01ed-4370-82c6-6dcce36ea544","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8375223} device-1 | {"level":"info","message":"POST /devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling 200 25ms","method":"POST","requestID":"400ab660-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling"} 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":"400a8f50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F648e03e5-e72c-4283-8c03-8af85a827a64#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F648e03e5-e72c-4283-8c03-8af85a827a64","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e0877b2b-9fc8-4dd7-8846-508b5ba53586","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8457646} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a698c298-104f-4c6d-9d70-7651c2f45182","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8464384} 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":"cdb2f7f8f75661992982611ffadf0962"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} device-1 | {"level":"info","message":"GET /devices/01f35667-7c75-417b-9c9f-4daac58f60ff? 200 41ms","method":"GET","requestID":"400a4130-0657-11ef-8390-917b0c22016f","responseTime":41,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 200 41ms","method":"GET","requestID":"400a8f50-0657-11ef-8390-917b0c22016f","responseTime":41,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"216a3116-b068-4fac-8ba2-23b7c3f27d9d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8555474} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":366,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.27263,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"400f9860-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 198ms","method":"POST","requestID":"cdb2f7f8f75661992982611ffadf0962","responseTime":198,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1287","request_time":"0.201","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cdb2f7f8f75661992982611ffadf0962"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} device-1 | {"level":"info","message":"POST /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling 200 21ms","method":"POST","requestID":"400f9860-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0f12a784-924f-4cec-a738-cf78f8a456c7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8701377} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":367,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.914395,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40123070-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7b2ce11a5fc440af77f8c66936e571c8","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} device-1 | {"level":"info","message":"POST /devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling 200 17ms","method":"POST","requestID":"40123070-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":368,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.447635,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"7b2ce11a5fc440af77f8c66936e571c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8cb2d408-dd65-48d6-946e-d3046be05993","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.8892672} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.537556930Z"}]},"request_id":"8965f97f-07a8-4df4-b00a-6ba6bfb5a8e2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.889282} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7b2ce11a5fc440af77f8c66936e571c8"},"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:45964","level":"info","msg":"Sent response.","req_id":369,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.774738,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40153db0-0657-11ef-8390-917b0c22016f"},"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":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/01f35667-7c75-417b-9c9f-4daac58f60ff? 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":"7b2ce11a5fc440af77f8c66936e571c8"} device-1 | {"level":"info","message":"GET /devices/01f35667-7c75-417b-9c9f-4daac58f60ff? 200 22ms","method":"GET","requestID":"7b2ce11a5fc440af77f8c66936e571c8","responseTime":22,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling 200 15ms","method":"POST","requestID":"40153db0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"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":"8f7a4e36-7c19-4a19-8ed4-148d53adc47b"},{"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":"f401dbe7-bcbf-4867-8d99-680c9b40f006"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"82d02da9-8f9c-4925-a359-f71289065f86"}]},"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/01f35667-7c75-417b-9c9f-4daac58f60ff"},{"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"00880d7195213d181d42906bbbac1a4b","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":370,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.608838,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"40184af0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":371,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.061055,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415727,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyN30.yT9xqQdj8DWJDQScezhIn6RuF-EO3gNvkY2XrvyPlZg"} 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":"00880d7195213d181d42906bbbac1a4b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:25.592826200Z"}]},"request_id":"2f78ea3f-cb25-4d78-a6c8-dfdac4ea68f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.9165976} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"00880d7195213d181d42906bbbac1a4b"},"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":"29/Apr/2024:18:35:27 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 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":"00880d7195213d181d42906bbbac1a4b"} device-1 | {"level":"info","message":"GET /devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185? 200 14ms","method":"GET","requestID":"00880d7195213d181d42906bbbac1a4b","responseTime":14,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"7177700b-d1f1-444e-8f26-a41b281995f1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.9210155} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3192c29a-c5d4-49d5-b5bd-ccb013ebc83f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.921932} 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":"40184af0-0657-11ef-8390-917b0c22016f"},"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/f124740c-64d6-49bb-9e8c-1b44196e51e9'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"40184af0-0657-11ef-8390-917b0c22016f","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"76187a3c-21eb-4d4c-b8f7-b589d97e3481","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.986313} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":372,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.615895,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"402431d0-0657-11ef-8390-917b0c22016f"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling 200 10ms","method":"POST","requestID":"402431d0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cad73a7-fdad-4326-b872-f75b04a72cc7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415727.9971} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":373,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.19219,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:27Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40260690-0657-11ef-8390-917b0c22016f"},"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling 200 9ms","method":"POST","requestID":"40260690-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"794b8ea205cb70e8fa3a49eb8cab7c32","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connecting","url":"http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff"},{"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"794b8ea205cb70e8fa3a49eb8cab7c32","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"794b8ea205cb70e8fa3a49eb8cab7c32"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","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/f124740c-64d6-49bb-9e8c-1b44196e51e9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"061dfd643b44b3fc9e518d9d3333ee4c","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/01f35667-7c75-417b-9c9f-4daac58f60ff"},{"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff124740c-64d6-49bb-9e8c-1b44196e51e9","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ea6bfcdb-d38c-4a62-a9e5-597045479878","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.2440963} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":374,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.931118,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9","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":"404b68e0-0657-11ef-8390-917b0c22016f"},"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/f124740c-64d6-49bb-9e8c-1b44196e51e9 200 10ms","method":"GET","requestID":"404b68e0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"061dfd643b44b3fc9e518d9d3333ee4c","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.042","http_referrer":"","http_user_agent":"node-fetch","requestID":"061dfd643b44b3fc9e518d9d3333ee4c"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73c5e35d-8cfd-4820-b169-00e89b51c969","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.2767632} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":375,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.838592,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"40504ae0-0657-11ef-8390-917b0c22016f"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling 200 13ms","method":"POST","requestID":"40504ae0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"820a6a9a-d18b-44f0-8671-bfdb077a1a6a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.2901778} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":376,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.710996,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"405294d0-0657-11ef-8390-917b0c22016f"},"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling 200 11ms","method":"POST","requestID":"405294d0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"12993da5f545ea203df78a610431a33f","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/648e03e5-e72c-4283-8c03-8af85a827a64"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":377,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.787002,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415728,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE"} 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":"12993da5f545ea203df78a610431a33f"},"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/648e03e5-e72c-4283-8c03-8af85a827a64"} experiment-1 | {"level":"info","message":"GET /experiments/648e03e5-e72c-4283-8c03-8af85a827a64 200 11ms","method":"GET","requestID":"12993da5f545ea203df78a610431a33f","responseTime":11,"status":200,"url":"/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"} gateway-1 | {"time_local":"29/Apr/2024:18:35:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/648e03e5-e72c-4283-8c03-8af85a827a64 HTTP/1.1","status": "200","body_bytes_sent":"1360","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"12993da5f545ea203df78a610431a33f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bb163e3c94d93f4665074fe841c1b79c","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/648e03e5-e72c-4283-8c03-8af85a827a64"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":378,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.792694,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415728,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE"} 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":"bb163e3c94d93f4665074fe841c1b79c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":379,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.240862,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415728,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE"} 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":"405e54a0-0657-11ef-8390-917b0c22016f"},"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/f124740c-64d6-49bb-9e8c-1b44196e51e9' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff124740c-64d6-49bb-9e8c-1b44196e51e9': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Ff124740c-64d6-49bb-9e8c-1b44196e51e9","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"a5b9e6ea-56a3-4b81-854c-46be5d41f670","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.3873205} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"3c7e6ea07e50540994f5e064002e7ff5","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e8d900b0-6114-40d5-9612-5b12dd0fe91a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.3880463} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"405e54a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/01f35667-7c75-417b-9c9f-4daac58f60ff"},{"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"06797d9716815297ab4559ba84278ded","responseTime":2,"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/01f35667-7c75-417b-9c9f-4daac58f60ff"},{"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"f124740c-64d6-49bb-9e8c-1b44196e51e9","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/f124740c-64d6-49bb-9e8c-1b44196e51e9 204 54ms","method":"DELETE","requestID":"405e54a0-0657-11ef-8390-917b0c22016f","responseTime":54,"status":204,"url":"/peerconnections/f124740c-64d6-49bb-9e8c-1b44196e51e9"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F01f35667-7c75-417b-9c9f-4daac58f60ff","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7cbe2772-08dd-421b-adde-b83c48e731d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.4474435} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":380,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.258396,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"406a6290-0657-11ef-8390-917b0c22016f"},"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/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling 200 13ms","method":"POST","requestID":"406a6290-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/01f35667-7c75-417b-9c9f-4daac58f60ff/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F648e03e5-e72c-4283-8c03-8af85a827a64': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F648e03e5-e72c-4283-8c03-8af85a827a64","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"4ffcd398-2aad-42a5-afe6-d8661a52a64b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.4595518} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"759ccd2b-93a0-47a3-b2d5-3053702c7a84","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.4598742} 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":"bb163e3c94d93f4665074fe841c1b79c"},"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:45964","level":"info","msg":"Received request.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fe5fd2920-0842-4813-9a6f-2f0b1b0d7185","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9eca310e-7015-49fd-9925-bb09880669ce","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.465944} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":381,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.538774,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"406cfaa0-0657-11ef-8390-917b0c22016f"},"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling 200 15ms","method":"POST","requestID":"406cfaa0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/e5fd2920-0842-4813-9a6f-2f0b1b0d7185/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/648e03e5-e72c-4283-8c03-8af85a827a64"} gateway-1 | {"time_local":"29/Apr/2024:18:35:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/648e03e5-e72c-4283-8c03-8af85a827a64 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":"bb163e3c94d93f4665074fe841c1b79c"} experiment-1 | {"level":"info","message":"DELETE /experiments/648e03e5-e72c-4283-8c03-8af85a827a64 204 176ms","method":"DELETE","requestID":"bb163e3c94d93f4665074fe841c1b79c","responseTime":176,"status":204,"url":"/experiments/648e03e5-e72c-4283-8c03-8af85a827a64"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"3c7e6ea07e50540994f5e064002e7ff5","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"3c7e6ea07e50540994f5e064002e7ff5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"06797d9716815297ab4559ba84278ded","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.146","http_referrer":"","http_user_agent":"node-fetch","requestID":"06797d9716815297ab4559ba84278ded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"a325dc2d46fc73988419e43f0b229f60","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":382,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.816425,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2301","request_time":"0.939","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"50a0824289f4b168c8092235ef033276"} gateway-1 | {"time_local":"29/Apr/2024:18:35:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2434","request_time":"0.951","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2965e966df26bcbbfd83a86bd17121a4"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415728,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE"} 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":"a325dc2d46fc73988419e43f0b229f60"},"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/e5fd2920-0842-4813-9a6f-2f0b1b0d7185' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/01f35667-7c75-417b-9c9f-4daac58f60ff' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"92949361-95b3-450b-b037-ca8defcb4cb4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.5554762} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a325dc2d46fc73988419e43f0b229f60"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"132bdb99-b5d7-482f-a340-a737dbd0afaf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.5601945} 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":"a325dc2d46fc73988419e43f0b229f60"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f8542d00-3baf-455c-a527-ee1996c093a8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.5694501} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"532023f5-2246-4a6b-a1be-163148a4e2f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.5695848} 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":"a325dc2d46fc73988419e43f0b229f60"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.569431905Z"}]},"request_id":"51472d32-9ef9-430c-ac95-42257fe60192","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.57342} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a325dc2d46fc73988419e43f0b229f60"},"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":"29/Apr/2024:18:35:28 +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":"a325dc2d46fc73988419e43f0b229f60"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"a325dc2d46fc73988419e43f0b229f60","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7a7673694c6de9ffc3188ce2ce7e2148","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":383,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.776907,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:28Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415728,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOH0.DQ49xapC5ZBKvhqBq_PsC9FvbZjTtzWwnG81SH-2VXE"} 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":"7a7673694c6de9ffc3188ce2ce7e2148"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f04b79ec-3fbe-4ba5-87a4-0a5a21a6623a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.595961} 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":"7a7673694c6de9ffc3188ce2ce7e2148"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c65dc029-c98f-4500-ae4b-f74eee47ac54","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.6003807} 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":"7a7673694c6de9ffc3188ce2ce7e2148"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f7a4278b-e096-40e6-ac5d-2703849bf808","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.6116548} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"de89b7fa-9f6d-4b93-b041-5a7afa03cfd1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.611785} 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":"7a7673694c6de9ffc3188ce2ce7e2148"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"726c3552-d8cd-409b-aea9-31cbc7f6b11e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415728.615493} 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":"7a7673694c6de9ffc3188ce2ce7e2148"},"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":"29/Apr/2024:18:35:28 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a7673694c6de9ffc3188ce2ce7e2148"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"7a7673694c6de9ffc3188ce2ce7e2148","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOX0.rylhuD1zIzFTz3mrXpI2WnWPSeagjPp4VUSpgwjx7M8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"292b154fc0099e853af8f44ee03f04d2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:29Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":384,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.179582,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415729,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOX0.rylhuD1zIzFTz3mrXpI2WnWPSeagjPp4VUSpgwjx7M8"} 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":"292b154fc0099e853af8f44ee03f04d2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"b84091c1-b813-4c01-a13a-0f23585e6583","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415729.1056767} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"292b154fc0099e853af8f44ee03f04d2"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"290886fc-8905-4a5f-93fb-853c11303143","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415729.1114674} 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":"292b154fc0099e853af8f44ee03f04d2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"c1ef471c-9a65-4ada-8a65-fe9d28555014","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415729.1375952} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"292b154fc0099e853af8f44ee03f04d2"},"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":"29/Apr/2024:18:35:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"292b154fc0099e853af8f44ee03f04d2"} device-1 | {"level":"info","message":"PATCH /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3 200 49ms","method":"PATCH","requestID":"292b154fc0099e853af8f44ee03f04d2","responseTime":49,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOX0.rylhuD1zIzFTz3mrXpI2WnWPSeagjPp4VUSpgwjx7M8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c1a16f83d794f1e1437aacdfac064dde","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:29Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":385,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.315588,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:29Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415729,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTcyOX0.rylhuD1zIzFTz3mrXpI2WnWPSeagjPp4VUSpgwjx7M8"} 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":"c1a16f83d794f1e1437aacdfac064dde"},"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":"29/Apr/2024:18:35:29 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/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":"c1a16f83d794f1e1437aacdfac064dde"} device-1 | {"level":"info","message":"POST /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/websocket 200 23ms","method":"POST","requestID":"c1a16f83d794f1e1437aacdfac064dde","responseTime":23,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"da22274761179b7b3c668447933a04ee","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/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":"da22274761179b7b3c668447933a04ee"} device-1 | {"level":"info","message":"OPTIONS /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/websocket 200 1ms","method":"OPTIONS","requestID":"da22274761179b7b3c668447933a04ee","responseTime":1,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5ab6685466f3617336b606c1a913b4a3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":386,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.726986,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"5ab6685466f3617336b606c1a913b4a3"},"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":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/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":"5ab6685466f3617336b606c1a913b4a3"} device-1 | {"level":"info","message":"POST /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/websocket 200 30ms","method":"POST","requestID":"5ab6685466f3617336b606c1a913b4a3","responseTime":30,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"9de26351320f1dbc0389509f7379307e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":387,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.049247,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"9de26351320f1dbc0389509f7379307e"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.569431905Z"}]},"request_id":"029367d6-6c55-4279-bcd1-6fe237268854","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.6347122} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9de26351320f1dbc0389509f7379307e"},"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":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 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":"9de26351320f1dbc0389509f7379307e"} device-1 | {"level":"info","message":"GET /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 200 18ms","method":"GET","requestID":"9de26351320f1dbc0389509f7379307e","responseTime":18,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"be925bfefef28c95439ff20698b68991","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":388,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.159556,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"be925bfefef28c95439ff20698b68991"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"d8c9a295-8704-4f26-bd08-bec431923cbe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.660547} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"be925bfefef28c95439ff20698b68991"},"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":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"be925bfefef28c95439ff20698b68991"} device-1 | {"level":"info","message":"GET /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3? 200 22ms","method":"GET","requestID":"be925bfefef28c95439ff20698b68991","responseTime":22,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"3745333e89cc9e42e3d1f991ad6dfdea","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:45964","level":"info","msg":"Received request.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":389,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.787813,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"3745333e89cc9e42e3d1f991ad6dfdea"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"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:45964","level":"info","msg":"Received request.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":390,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.732756,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"41c89300-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":391,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.212003,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"41c8ba10-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.569431905Z"}]},"request_id":"d68e6aea-d87f-45ac-a7da-e984e4776b6e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.7471163} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41c89300-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"a1ee7e52-03ad-411d-9b00-4ba0f42c4c0e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.74827} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41c8ba10-0657-11ef-8390-917b0c22016f"},"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/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 200 16ms","method":"GET","requestID":"41c89300-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3? 200 16ms","method":"GET","requestID":"41c8ba10-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":392,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.57713,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"41d452d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":393,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.015473,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"41d4a0f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":394,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.188343,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2720ad02-cf88-42aa-b124-2cff08ae9910","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8279335} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41d51620-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.569431905Z"}]},"request_id":"3de3c0b3-774e-411a-a5f2-4e935735f955","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8301458} 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":"41d452d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"01894418-de5a-444b-b091-ad4efe142c77","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.833999} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41d4a0f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"POST /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling 200 17ms","method":"POST","requestID":"41d51620-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1d0a142a-b03e-4353-960e-1b857408647c#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1d0a142a-b03e-4353-960e-1b857408647c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"ae8a0a07-2c8f-4ffa-97c1-21f052332cdc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8390026} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"71974468-d896-4d4d-bbed-d531077dea76","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.83934} 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":"3745333e89cc9e42e3d1f991ad6dfdea"},"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:45964","level":"info","msg":"Received request.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 200 31ms","method":"GET","requestID":"41d452d0-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e1deccb1-d42a-4a57-b29f-97658a8c864d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8447073} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":395,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.706318,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} device-1 | {"level":"info","message":"GET /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3? 200 30ms","method":"GET","requestID":"41d4a0f0-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41d87180-0657-11ef-8390-917b0c22016f"},"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/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling 200 11ms","method":"POST","requestID":"41d87180-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 175ms","method":"POST","requestID":"3745333e89cc9e42e3d1f991ad6dfdea","responseTime":175,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.182","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"3745333e89cc9e42e3d1f991ad6dfdea"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f7cc1e8b-8a44-4ddc-86af-d8fab977d9c6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.857831} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":396,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.061286,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41da4640-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f434e204f22b878ece61ca35bcf4b2e3","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/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling 200 11ms","method":"POST","requestID":"41da4640-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":397,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.925076,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling 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":"f434e204f22b878ece61ca35bcf4b2e3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d6f2281b-e934-4713-b0ed-6259fa78a6c9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8691168} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.569431905Z"}]},"request_id":"341c5ab0-7d47-4cbd-b271-aed550d6bb1a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8694482} 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":"f434e204f22b878ece61ca35bcf4b2e3"},"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:45964","level":"info","msg":"Sent response.","req_id":398,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.407124,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41dc4210-0657-11ef-8390-917b0c22016f"},"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":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 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":"f434e204f22b878ece61ca35bcf4b2e3"} device-1 | {"level":"info","message":"GET /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c? 200 14ms","method":"GET","requestID":"f434e204f22b878ece61ca35bcf4b2e3","responseTime":14,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling 200 11ms","method":"POST","requestID":"41dc4210-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"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":"f61c9069-0bce-4023-9c24-32342be2fe6a"},{"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":"737e2bf6-591f-4f2f-8978-3b7ddf5687e6"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a845d5e9-e5da-4259-a821-14ddbe9ac7ff"}]},"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/65b8f914-fc7a-4b95-b75f-a241f6b9805c"},{"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/072640dd-c361-4cd1-b87d-58e20ee15bc3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"252558672100f82d663f154f0bb6ec3e","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":399,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.935119,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"41de64f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":400,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.632884,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415730,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMH0.Bp2cLsOQo7T4HywKXnhGMxjSZcL2TjdZN-0gIWnfONA"} 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":"252558672100f82d663f154f0bb6ec3e"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:28.611628423Z"}]},"request_id":"f0ad6ef4-667e-4315-b4b1-fb612b6186d3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8886557} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"252558672100f82d663f154f0bb6ec3e"},"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/072640dd-c361-4cd1-b87d-58e20ee15bc3? 200 11ms","method":"GET","requestID":"252558672100f82d663f154f0bb6ec3e","responseTime":11,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"d3e98a4b-28a9-4607-a415-4a80a66c95c7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8924346} gateway-1 | {"time_local":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"252558672100f82d663f154f0bb6ec3e"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c77a0674-9acf-477c-a962-7a70a8c7943b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.8927853} 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":"41de64f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b'"} 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 32ms","method":"POST","requestID":"41de64f0-0657-11ef-8390-917b0c22016f","responseTime":32,"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":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7606a703-6d43-4b95-a0d3-0f52275151f0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.948291} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":401,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.523773,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41e85000-0657-11ef-8390-917b0c22016f"},"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/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling 200 10ms","method":"POST","requestID":"41e85000-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"2e252dcd6ee2e73488e5b96fc91d8744","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/65b8f914-fc7a-4b95-b75f-a241f6b9805c"},{"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/072640dd-c361-4cd1-b87d-58e20ee15bc3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"}}},"level":"info","message":"received a callback"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b8ecb6b5-94cc-4922-9c30-5621e524360c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415730.962574} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":402,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.610706,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:30Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41ea4bd0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"2e252dcd6ee2e73488e5b96fc91d8744","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:30 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"2e252dcd6ee2e73488e5b96fc91d8744"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling 200 14ms","method":"POST","requestID":"41ea4bd0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","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/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ce3160ba4772966952dd645400234bd8","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/65b8f914-fc7a-4b95-b75f-a241f6b9805c"},{"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/072640dd-c361-4cd1-b87d-58e20ee15bc3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c62791ea-67d0-4f25-9310-af180ce1c65b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.0223095} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":403,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.744318,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","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":"41f39aa0-0657-11ef-8390-917b0c22016f"},"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/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b 200 8ms","method":"GET","requestID":"41f39aa0-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"ce3160ba4772966952dd645400234bd8","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.029","http_referrer":"","http_user_agent":"node-fetch","requestID":"ce3160ba4772966952dd645400234bd8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"acad631c-2234-4555-a60a-413d3db4165f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.0450897} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":404,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.23071,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41f71d10-0657-11ef-8390-917b0c22016f"},"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/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling 200 8ms","method":"POST","requestID":"41f71d10-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"19a7c869-b5e6-4a18-bb0e-7031f53336a5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.0554533} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":405,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.737446,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"41f8a3b0-0657-11ef-8390-917b0c22016f"},"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/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling 200 8ms","method":"POST","requestID":"41f8a3b0-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"a203763337a5d266770a7d42a73faf47","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/1d0a142a-b03e-4353-960e-1b857408647c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":406,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.184229,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"a203763337a5d266770a7d42a73faf47"},"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/1d0a142a-b03e-4353-960e-1b857408647c"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/1d0a142a-b03e-4353-960e-1b857408647c 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":"a203763337a5d266770a7d42a73faf47"} experiment-1 | {"level":"info","message":"GET /experiments/1d0a142a-b03e-4353-960e-1b857408647c 200 16ms","method":"GET","requestID":"a203763337a5d266770a7d42a73faf47","responseTime":16,"status":200,"url":"/experiments/1d0a142a-b03e-4353-960e-1b857408647c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"dbdfa6abae54f21ad087c52935d41be8","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/1d0a142a-b03e-4353-960e-1b857408647c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":407,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.330224,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"dbdfa6abae54f21ad087c52935d41be8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":408,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.688244,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"42094580-0657-11ef-8390-917b0c22016f"},"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/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"aaee7a23-9985-4e06-b959-a648b5baa5d9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.1873894} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6169400a-33cb-42b8-a726-b7810c03d61e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.1876438} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"45ec9a423f4badab27c39dd7d8bcf65f","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 12ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"42094580-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/65b8f914-fc7a-4b95-b75f-a241f6b9805c"},{"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/072640dd-c361-4cd1-b87d-58e20ee15bc3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"833fc1c63b02f39db161c637388489af","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c"},{"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/072640dd-c361-4cd1-b87d-58e20ee15bc3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b","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/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b 204 58ms","method":"DELETE","requestID":"42094580-0657-11ef-8390-917b0c22016f","responseTime":58,"status":204,"url":"/peerconnections/8e3dd47c-4519-45c1-a0e3-e0dcd7d2db9b"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/1d0a142a-b03e-4353-960e-1b857408647c"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F65b8f914-fc7a-4b95-b75f-a241f6b9805c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2b60f6a4-5cfb-4399-8e2a-b212af9eada5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.2482595} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":409,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.228504,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4215a190-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling 200 15ms","method":"POST","requestID":"4215a190-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1d0a142a-b03e-4353-960e-1b857408647c': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F1d0a142a-b03e-4353-960e-1b857408647c","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"fed862f7-59c0-47b1-bc45-9c33378c128c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.26195} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"06fba59f-fe05-4afc-8bb6-9128f92510d5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.2622354} 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":"dbdfa6abae54f21ad087c52935d41be8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":25}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F072640dd-c361-4cd1-b87d-58e20ee15bc3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"70b264ab-d57f-4a94-b48b-fbb6df90bebe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.266078} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":410,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.740687,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"421860b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling 200 15ms","method":"POST","requestID":"421860b0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/072640dd-c361-4cd1-b87d-58e20ee15bc3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/1d0a142a-b03e-4353-960e-1b857408647c"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/1d0a142a-b03e-4353-960e-1b857408647c HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.191","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"dbdfa6abae54f21ad087c52935d41be8"} experiment-1 | {"level":"info","message":"DELETE /experiments/1d0a142a-b03e-4353-960e-1b857408647c 204 185ms","method":"DELETE","requestID":"dbdfa6abae54f21ad087c52935d41be8","responseTime":185,"status":204,"url":"/experiments/1d0a142a-b03e-4353-960e-1b857408647c"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2252","request_time":"2.154","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ef997670dde7afcc438044ef941c4b86"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 138ms","method":"POST","requestID":"45ec9a423f4badab27c39dd7d8bcf65f","responseTime":138,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"45ec9a423f4badab27c39dd7d8bcf65f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1ffca329e452f17c270d920e2cc53ebb","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"833fc1c63b02f39db161c637388489af","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.149","http_referrer":"","http_user_agent":"node-fetch","requestID":"833fc1c63b02f39db161c637388489af"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2572","request_time":"0.737","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"eca08ddb0a0e178487ba764b76c35597"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":411,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.907494,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"1ffca329e452f17c270d920e2cc53ebb"},"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/072640dd-c361-4cd1-b87d-58e20ee15bc3' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/65b8f914-fc7a-4b95-b75f-a241f6b9805c' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"974d7dd4-9403-4887-806a-d181b83b589a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.3552845} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1ffca329e452f17c270d920e2cc53ebb"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cc4272b7-87f2-4f80-8d1f-694842acc6d5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.3606405} 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":"1ffca329e452f17c270d920e2cc53ebb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"fe2b0c46-c97a-46b8-af0e-3d5c5e6d7200","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.3708892} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9c157e94-541e-453f-8165-2b45fddfa73e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.3709772} 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":"1ffca329e452f17c270d920e2cc53ebb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.370862200Z"}]},"request_id":"2e8a2c4e-1a87-4925-b257-68a43a086f68","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.3756158} 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":"1ffca329e452f17c270d920e2cc53ebb"},"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":"29/Apr/2024:18:35:31 +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":"1ffca329e452f17c270d920e2cc53ebb"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"1ffca329e452f17c270d920e2cc53ebb","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"ba26bf76350f2ef7ebb5a247eebb7a82","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":412,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.721301,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"ba26bf76350f2ef7ebb5a247eebb7a82"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"884bd10f-234a-4d8f-bfa1-07ce74578c8f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.4019592} 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":"ba26bf76350f2ef7ebb5a247eebb7a82"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"acd1fb04-d6c3-4882-ad86-72be57e56b33","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.4065363} 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":"ba26bf76350f2ef7ebb5a247eebb7a82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8e5a71ac-f56a-43be-9b02-27faf4a0e86e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.416581} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4f55e69-b54d-4106-a809-09accd8e61ff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.416831} 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":"ba26bf76350f2ef7ebb5a247eebb7a82"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"af312887-182a-4e1a-af76-857469b59083","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.4210806} 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":"ba26bf76350f2ef7ebb5a247eebb7a82"},"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":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ba26bf76350f2ef7ebb5a247eebb7a82"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"ba26bf76350f2ef7ebb5a247eebb7a82","responseTime":40,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"8f160da34fddb079c0f5aa45f30f84d2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":413,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.085581,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"8f160da34fddb079c0f5aa45f30f84d2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"cc600f64-7d69-496b-b2e0-be155fb26c18","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.9152725} 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":"8f160da34fddb079c0f5aa45f30f84d2"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"be4cc6d2-78e2-47c5-9c06-32d7e51f960a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.9197314} 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":"8f160da34fddb079c0f5aa45f30f84d2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"e4924702-b4b8-412d-af4d-0307eb8b8a73","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415731.9397995} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8f160da34fddb079c0f5aa45f30f84d2"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae 200 39ms","method":"PATCH","requestID":"8f160da34fddb079c0f5aa45f30f84d2","responseTime":39,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.046","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8f160da34fddb079c0f5aa45f30f84d2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e8168e6745ea087e3be9b1750a9da4be","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":414,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.99633,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:31Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415731,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczMX0.gsjtoN4Ff7zLibD64lpEoZp7HEnLBFO0MboIh0PPgzM"} 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":"e8168e6745ea087e3be9b1750a9da4be"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/websocket 200 21ms","method":"POST","requestID":"e8168e6745ea087e3be9b1750a9da4be","responseTime":21,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:31 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"e8168e6745ea087e3be9b1750a9da4be"} device-1 | {"level":"info","message":"device 'http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c721f5a00b1aca3648c199c2f434aa41","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/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":"c721f5a00b1aca3648c199c2f434aa41"} device-1 | {"level":"info","message":"OPTIONS /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/websocket 200 1ms","method":"OPTIONS","requestID":"c721f5a00b1aca3648c199c2f434aa41","responseTime":1,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fd2fa8f857a3e18b5c2572335764b021","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":415,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.192384,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"fd2fa8f857a3e18b5c2572335764b021"},"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":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"fd2fa8f857a3e18b5c2572335764b021"} device-1 | {"level":"info","message":"POST /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/websocket 200 39ms","method":"POST","requestID":"fd2fa8f857a3e18b5c2572335764b021","responseTime":39,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2afcbe1990b36e728a88682c28eaa098","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":416,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.315802,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"2afcbe1990b36e728a88682c28eaa098"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.370862200Z"}]},"request_id":"4dc10bb7-e3d1-4cd9-8753-dafdc0a8c0bb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.499391} 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":"2afcbe1990b36e728a88682c28eaa098"},"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":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 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":"2afcbe1990b36e728a88682c28eaa098"} device-1 | {"level":"info","message":"GET /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 200 20ms","method":"GET","requestID":"2afcbe1990b36e728a88682c28eaa098","responseTime":20,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9c98de0f89f8556c829176d5d4073443","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":417,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.381293,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"9c98de0f89f8556c829176d5d4073443"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"a4d48166-a3c3-4e30-ada2-95b9cbec4630","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.5283473} 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":"9c98de0f89f8556c829176d5d4073443"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? 200 23ms","method":"GET","requestID":"9c98de0f89f8556c829176d5d4073443","responseTime":23,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9c98de0f89f8556c829176d5d4073443"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6cd74534f12b8b56b86faeeb6ef5a290","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:45964","level":"info","msg":"Received request.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":418,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.557245,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"6cd74534f12b8b56b86faeeb6ef5a290"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"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:45964","level":"info","msg":"Received request.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":419,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.645424,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"437d47e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":420,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.704058,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"437d9600-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.370862200Z"}]},"request_id":"6e61687b-0494-4584-bd7d-6e862eb4c4e7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.6063054} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"437d47e0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"55ada51c-1971-4f78-967c-bfdd7fdfe709","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.6071923} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"437d9600-0657-11ef-8390-917b0c22016f"},"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/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 200 16ms","method":"GET","requestID":"437d47e0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? 200 15ms","method":"GET","requestID":"437d9600-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":421,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.592357,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"43886b70-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":422,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.60259,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"4388b990-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9ef839f4-c74b-413b-81ef-aba7105bd656","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.6850786} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":423,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.335352,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"438907b0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.370862200Z"}]},"request_id":"46134232-8d18-4946-8e2b-2f705caee05f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.6892002} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"43886b70-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"8d447b3c-77d5-4378-a2de-25c8041333ff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.6940055} device-1 | {"level":"info","message":"POST /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling 200 20ms","method":"POST","requestID":"438907b0-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling"} 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":"4388b990-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff65e2af9-9b80-4d6e-ac6b-d95a4e8fce90#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5fbf1039-787b-4bed-b353-3f64fa3bba28","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.700598} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b82d61c8-2788-4c6b-9054-6a7981ddf3b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7012053} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6cd74534f12b8b56b86faeeb6ef5a290"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} device-1 | {"level":"info","message":"GET /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 200 36ms","method":"GET","requestID":"43886b70-0657-11ef-8390-917b0c22016f","responseTime":36,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? 200 36ms","method":"GET","requestID":"4388b990-0657-11ef-8390-917b0c22016f","responseTime":36,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4cd2e020-0b41-451b-b3a9-0c2cfac40070","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7101705} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":424,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.579594,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"438cff50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6cd74534f12b8b56b86faeeb6ef5a290"} experiment-1 | {"level":"info","message":"POST /experiments? 201 177ms","method":"POST","requestID":"6cd74534f12b8b56b86faeeb6ef5a290","responseTime":177,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} device-1 | {"level":"info","message":"POST /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling 200 20ms","method":"POST","requestID":"438cff50-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"43ba044b-5980-43a8-a65a-d76335e01f5f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7239985} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":425,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.647642,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"438f7050-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"51b38a29f83d35acc58bedc590919cac","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/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling 200 16ms","method":"POST","requestID":"438f7050-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":426,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.559434,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} 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":"51b38a29f83d35acc58bedc590919cac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.370862200Z"}]},"request_id":"d774fbde-083a-4bd3-8bbf-5ea867a2108a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7431607} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"03a3a533-d050-4a36-9ea5-57caecf59c88","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7433946} 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":"51b38a29f83d35acc58bedc590919cac"},"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:45964","level":"info","msg":"Sent response.","req_id":427,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.831464,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43925680-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 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":"51b38a29f83d35acc58bedc590919cac"} device-1 | {"level":"info","message":"GET /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c? 200 22ms","method":"GET","requestID":"51b38a29f83d35acc58bedc590919cac","responseTime":22,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling 200 16ms","method":"POST","requestID":"43925680-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postPeerconnections called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"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":"9a4016b0-d0b2-4503-9805-4847e62271ef"},{"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":"f1de455d-9e29-462d-9dc3-d8a412e4cfb2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bc6aac58-42cd-4cef-9142-fad0fc9490b1"}]},"level":"info","message":"Built pairwise service configurations"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"fa7f4d70babb19973736f1a82577f28d","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} 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/b01fb1c8-4c6b-401a-8843-18a1c36c531c"},{"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":428,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.846097,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"439563c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":429,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.308843,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415733,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczM30.ilBFNocpZkJ9CygkRQQvvnf34KFMaMx-xz_5XoHhnTk"} 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":"fa7f4d70babb19973736f1a82577f28d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:31.416561016Z"}]},"request_id":"e6e2033a-aecf-4304-8c44-6c84889cc2f5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7689397} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"fa7f4d70babb19973736f1a82577f28d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"52a25c5c-aa00-4cd2-91c4-88b2dbd4b90f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.7741916} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fa7f4d70babb19973736f1a82577f28d"} device-1 | {"level":"info","message":"GET /devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae? 200 16ms","method":"GET","requestID":"fa7f4d70babb19973736f1a82577f28d","responseTime":16,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4710e8d-00ca-4ac4-be0a-cd6159d73be2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.774516} 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":"439563c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/3c2ec7e6-09ac-45a5-9684-367bef143e3f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 47ms","method":"POST","requestID":"439563c0-0657-11ef-8390-917b0c22016f","responseTime":47,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"35660fd1-78e8-4ae4-a373-c177ea72835c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.8476486} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":430,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.634367,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43a2aa30-0657-11ef-8390-917b0c22016f"},"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/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling 200 9ms","method":"POST","requestID":"43a2aa30-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"71eb06e5-f3bc-4c65-bc39-37cf8f2f76d3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.8578198} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":431,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.503516,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43a430d0-0657-11ef-8390-917b0c22016f"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling 200 10ms","method":"POST","requestID":"43a430d0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fad88c29909df5dddb27567228d47364","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/b01fb1c8-4c6b-401a-8843-18a1c36c531c"},{"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 3ms","method":"POST","requestID":"fad88c29909df5dddb27567228d47364","responseTime":3,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.007","http_referrer":"","http_user_agent":"node-fetch","requestID":"fad88c29909df5dddb27567228d47364"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","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/3c2ec7e6-09ac-45a5-9684-367bef143e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1840665c6421e82ecb928ea1f6dd15d8","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/b01fb1c8-4c6b-401a-8843-18a1c36c531c"},{"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c2ec7e6-09ac-45a5-9684-367bef143e3f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bbe6995c-17a1-452d-8eb3-e3b564666d6a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.939147} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":432,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.379222,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43b08ce0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f 200 9ms","method":"GET","requestID":"43b08ce0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 28ms","method":"POST","requestID":"1840665c6421e82ecb928ea1f6dd15d8","responseTime":28,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:33 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.031","http_referrer":"","http_user_agent":"node-fetch","requestID":"1840665c6421e82ecb928ea1f6dd15d8"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c2bc30ca-bae5-4da5-8755-6dcd0c8c9c5f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.9622104} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":433,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.421786,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43b40f50-0657-11ef-8390-917b0c22016f"},"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/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling 200 10ms","method":"POST","requestID":"43b40f50-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b54bfe54-0a7a-44bd-b1d3-7be56b92e004","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415733.9739802} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":434,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.757326,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:33Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43b5e410-0657-11ef-8390-917b0c22016f"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling 200 10ms","method":"POST","requestID":"43b5e410-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e135d5ed490a594811fe7bd6cd293936","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":435,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.338196,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"e135d5ed490a594811fe7bd6cd293936"},"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/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} gateway-1 | {"time_local":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e135d5ed490a594811fe7bd6cd293936"} experiment-1 | {"level":"info","message":"GET /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90 200 12ms","method":"GET","requestID":"e135d5ed490a594811fe7bd6cd293936","responseTime":12,"status":200,"url":"/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"7757b4093d98c8c8a2fac0e564f43a65","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":436,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.361131,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"7757b4093d98c8c8a2fac0e564f43a65"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":437,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.183967,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"43c46300-0657-11ef-8390-917b0c22016f"},"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/3c2ec7e6-09ac-45a5-9684-367bef143e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c2ec7e6-09ac-45a5-9684-367bef143e3f': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3c2ec7e6-09ac-45a5-9684-367bef143e3f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"c6a1c2b6-3165-4426-b884-f603447895ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.0840945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ea8615de-6de8-41b1-b723-7052e92a7bd9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.0845222} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"485eaf1139da952cc6814847b6b157c9","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":"43c46300-0657-11ef-8390-917b0c22016f"},"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-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/b01fb1c8-4c6b-401a-8843-18a1c36c531c"},{"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"87975389b7498b2edea6924f23e6cb1f","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","driver":"device1","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","driver":"device1","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c"},{"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"3c2ec7e6-09ac-45a5-9684-367bef143e3f","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/3c2ec7e6-09ac-45a5-9684-367bef143e3f 204 54ms","method":"DELETE","requestID":"43c46300-0657-11ef-8390-917b0c22016f","responseTime":54,"status":204,"url":"/peerconnections/3c2ec7e6-09ac-45a5-9684-367bef143e3f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb01fb1c8-4c6b-401a-8843-18a1c36c531c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"653efa58-236b-407a-aaed-eb70c220d8b7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.1530094} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":438,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.30912,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43d09800-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling 200 18ms","method":"POST","requestID":"43d09800-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/b01fb1c8-4c6b-401a-8843-18a1c36c531c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff65e2af9-9b80-4d6e-ac6b-d95a4e8fce90': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff65e2af9-9b80-4d6e-ac6b-d95a4e8fce90","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"811382f8-9c4a-440f-9efb-f23ea23093fa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.1657689} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5bd9a7b9-d244-4ad4-92df-6bc00c49d50e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.1662974} 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":"7757b4093d98c8c8a2fac0e564f43a65"},"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:45964","level":"info","msg":"Received request.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Faa1f9127-8db5-4839-9fc2-98aab9ede5ae","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"50a89f04-b383-46e7-a06f-5e60403e099e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.1720238} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":439,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.466876,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"43d3cc50-0657-11ef-8390-917b0c22016f"},"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/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling 200 14ms","method":"POST","requestID":"43d3cc50-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} gateway-1 | {"time_local":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7757b4093d98c8c8a2fac0e564f43a65"} gateway-1 | {"time_local":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2252","request_time":"2.255","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"018f83ed8eebf05557060e4b448e214e"} experiment-1 | {"level":"info","message":"DELETE /experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90 204 177ms","method":"DELETE","requestID":"7757b4093d98c8c8a2fac0e564f43a65","responseTime":177,"status":204,"url":"/experiments/f65e2af9-9b80-4d6e-ac6b-d95a4e8fce90"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"485eaf1139da952cc6814847b6b157c9","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"485eaf1139da952cc6814847b6b157c9"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.147","http_referrer":"","http_user_agent":"node-fetch","requestID":"87975389b7498b2edea6924f23e6cb1f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"87975389b7498b2edea6924f23e6cb1f","responseTime":141,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5acc208d6acf87de7fc3bb49d10e7611","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2572","request_time":"0.778","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a91cdf2b437877ff91cd5eb7046f5848"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":440,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.130912,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/aa1f9127-8db5-4839-9fc2-98aab9ede5ae' closed"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"5acc208d6acf87de7fc3bb49d10e7611"},"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/b01fb1c8-4c6b-401a-8843-18a1c36c531c' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"09a4f9d2-edfd-4ebb-8d93-b57b9a790819","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.2529483} 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":"5acc208d6acf87de7fc3bb49d10e7611"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1c683ab8-48ed-430a-b701-955616e7358a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.2590353} 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":"5acc208d6acf87de7fc3bb49d10e7611"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"fde6ac8f-7216-40b1-bdf7-5da492577550","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.2689476} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"38a47b80-e083-4da7-b3b3-6710b7d80190","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.269263} 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":"5acc208d6acf87de7fc3bb49d10e7611"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"007b373d-808e-4579-bb77-497c3d08021d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.273705} 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":"5acc208d6acf87de7fc3bb49d10e7611"},"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":"29/Apr/2024:18:35:34 +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":"5acc208d6acf87de7fc3bb49d10e7611"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"5acc208d6acf87de7fc3bb49d10e7611","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"95d0b535b151c4dbcd2acc41684e6845","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":441,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.682043,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"95d0b535b151c4dbcd2acc41684e6845"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"11888d30-d035-49ab-a749-07c66d644f30","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.2975497} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"95d0b535b151c4dbcd2acc41684e6845"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"73ac613b-5448-4b17-b577-c950e6ecb2cc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.3035219} 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":"95d0b535b151c4dbcd2acc41684e6845"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"6e8dbf31-52e7-48bb-83f4-15c3e4f57bc2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.3143852} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"891f89d6-aa2a-4c7c-b05c-1e15233b78ed","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.3152394} 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":"95d0b535b151c4dbcd2acc41684e6845"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.314357992Z"}]},"request_id":"f19cf064-4b12-4c88-8f50-c5b82a47cfdd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.321397} 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":"95d0b535b151c4dbcd2acc41684e6845"},"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 49ms","method":"POST","requestID":"95d0b535b151c4dbcd2acc41684e6845","responseTime":49,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"95d0b535b151c4dbcd2acc41684e6845"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"08cd86f17276733736684163809305f0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":442,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.886595,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"08cd86f17276733736684163809305f0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"ebadac8b-9f30-43ba-884a-45681bd61475","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.816565} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"08cd86f17276733736684163809305f0"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7383309f-36c6-45c2-9804-2f8be53bc106","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.8240182} 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":"08cd86f17276733736684163809305f0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"63a0368b-2a42-4105-8e26-96a52a47e326","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415734.843649} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"08cd86f17276733736684163809305f0"},"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":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/c5a3abb9-2233-422a-a86b-23a6f860f177 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.048","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"08cd86f17276733736684163809305f0"} device-1 | {"level":"info","message":"PATCH /devices/c5a3abb9-2233-422a-a86b-23a6f860f177 200 44ms","method":"PATCH","requestID":"08cd86f17276733736684163809305f0","responseTime":44,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"398613e52ccb3a790fe8de0606b615f9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":443,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.984427,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:34Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415734,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNH0.2EFvFRoKuJyVchO2zp4yI1ZL0JIT1WNE2Hlj8sg2QYo"} 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":"398613e52ccb3a790fe8de0606b615f9"},"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":"29/Apr/2024:18:35:34 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/c5a3abb9-2233-422a-a86b-23a6f860f177/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"398613e52ccb3a790fe8de0606b615f9"} device-1 | {"level":"info","message":"POST /devices/c5a3abb9-2233-422a-a86b-23a6f860f177/websocket 200 21ms","method":"POST","requestID":"398613e52ccb3a790fe8de0606b615f9","responseTime":21,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3c75e4db653957d0e5b660c59dd1f6f1","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/760bc142-6357-4044-b8cf-096da22cffe0/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":"3c75e4db653957d0e5b660c59dd1f6f1"} device-1 | {"level":"info","message":"OPTIONS /devices/760bc142-6357-4044-b8cf-096da22cffe0/websocket 200 1ms","method":"OPTIONS","requestID":"3c75e4db653957d0e5b660c59dd1f6f1","responseTime":1,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5cef443c07cf5eb5ffa5d37cbf127ace","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":444,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.335665,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"5cef443c07cf5eb5ffa5d37cbf127ace"},"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/760bc142-6357-4044-b8cf-096da22cffe0/websocket 200 39ms","method":"POST","requestID":"5cef443c07cf5eb5ffa5d37cbf127ace","responseTime":39,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/760bc142-6357-4044-b8cf-096da22cffe0/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.045","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"5cef443c07cf5eb5ffa5d37cbf127ace"} device-1 | {"level":"info","message":"device 'http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"243284b9c20e6eb6b9196855d5ac70b5","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":445,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.381296,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"243284b9c20e6eb6b9196855d5ac70b5"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"5398ae44-9568-4d36-a534-0f479f3be9c6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.3904214} 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":"243284b9c20e6eb6b9196855d5ac70b5"},"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/c5a3abb9-2233-422a-a86b-23a6f860f177? 200 19ms","method":"GET","requestID":"243284b9c20e6eb6b9196855d5ac70b5","responseTime":19,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c5a3abb9-2233-422a-a86b-23a6f860f177? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"243284b9c20e6eb6b9196855d5ac70b5"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"6567d2f60d85be83f1cd6007d6f7a482","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":446,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.259775,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"6567d2f60d85be83f1cd6007d6f7a482"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.314357992Z"}]},"request_id":"5d2af0f4-5507-4f27-8c9d-c9c4d9d95706","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.4171765} 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":"6567d2f60d85be83f1cd6007d6f7a482"},"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/760bc142-6357-4044-b8cf-096da22cffe0? 200 18ms","method":"GET","requestID":"6567d2f60d85be83f1cd6007d6f7a482","responseTime":18,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/760bc142-6357-4044-b8cf-096da22cffe0? 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":"6567d2f60d85be83f1cd6007d6f7a482"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f8dcfab771444bf235d548b00a4c9408","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:45964","level":"info","msg":"Received request.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":447,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.256568,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"f8dcfab771444bf235d548b00a4c9408"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"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:45964","level":"info","msg":"Received request.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":448,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.296027,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"453705d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":449,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669074,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"45372ce0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"116c3721-a244-4b3d-82b4-aa6047eb883e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.5044892} 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":"453705d0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.314357992Z"}]},"request_id":"0ec3aeb3-85ea-4a09-a825-4c043c18874b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.5061154} 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":"45372ce0-0657-11ef-8390-917b0c22016f"},"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/c5a3abb9-2233-422a-a86b-23a6f860f177? 200 17ms","method":"GET","requestID":"453705d0-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/760bc142-6357-4044-b8cf-096da22cffe0? 200 17ms","method":"GET","requestID":"45372ce0-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":450,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.50371,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"454313c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":451,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.116207,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"45433ad0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"19de647c-e348-4ee3-86f5-da3c74bb386d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.588471} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.314357992Z"}]},"request_id":"abec66c6-43b0-4b1c-86e3-445a7f4b3624","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.5895422} 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":"454313c0-0657-11ef-8390-917b0c22016f"},"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:50962","level":"info","msg":"Received request.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} 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":"45433ad0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e37adbac-0844-460e-a658-e62b9a27835e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.5935452} authorization-1 | {"client_addr":"127.0.0.1:50962","level":"info","msg":"Sent response.","req_id":452,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.816051,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"454388f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"GET /devices/c5a3abb9-2233-422a-a86b-23a6f860f177? 200 26ms","method":"GET","requestID":"454313c0-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc279ecdb-ddb9-45d2-aba9-ce4a50fe5e29#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"251c0b43-f1c8-42a6-a10b-0a2fe39daf57","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.5962331} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2869dd30-f43d-44a3-b503-a1dbbb7af851","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.596728} device-1 | {"level":"info","message":"GET /devices/760bc142-6357-4044-b8cf-096da22cffe0? 200 25ms","method":"GET","requestID":"45433ad0-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0?"} 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":"f8dcfab771444bf235d548b00a4c9408"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling 200 29ms","method":"POST","requestID":"454388f0-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c14b23b5-ba64-459a-a592-ce566485bcb9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.6077306} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":453,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.890332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4547a7a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f8dcfab771444bf235d548b00a4c9408"} experiment-1 | {"level":"info","message":"POST /experiments? 201 182ms","method":"POST","requestID":"f8dcfab771444bf235d548b00a4c9408","responseTime":182,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling 200 13ms","method":"POST","requestID":"4547a7a0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"07357677-3b47-42b8-9e81-838d48296019","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.6166296} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":454,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.41178,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4548b910-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bf31a2bcaa50011d775167b7d4783452","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/760bc142-6357-4044-b8cf-096da22cffe0/signaling 200 18ms","method":"POST","requestID":"4548b910-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":456,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.226612,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"bf31a2bcaa50011d775167b7d4783452"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"30d22952-3619-4fd2-ba88-820e3ca6dbbc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.633511} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":455,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.167638,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"454a18a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.268913311Z"}]},"request_id":"49ffa30c-d6f5-4c07-9484-2b79c24a76d8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.6404402} device-1 | {"level":"info","message":"POST /devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling 200 23ms","method":"POST","requestID":"454a18a0-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"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":"3fca7a2b-bf2d-420f-be79-42ad8678dbd3"},{"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":"661e51ee-9e46-4f97-a06e-b2e7a1c533c2"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"1ff7df13-648d-47f7-87ea-376104e41525"}]},"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/c5a3abb9-2233-422a-a86b-23a6f860f177"},{"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/760bc142-6357-4044-b8cf-096da22cffe0"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} 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":"bf31a2bcaa50011d775167b7d4783452"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/c5a3abb9-2233-422a-a86b-23a6f860f177? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf31a2bcaa50011d775167b7d4783452"} device-1 | {"level":"info","message":"GET /devices/c5a3abb9-2233-422a-a86b-23a6f860f177? 200 24ms","method":"GET","requestID":"bf31a2bcaa50011d775167b7d4783452","responseTime":24,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":457,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.968513,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","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":"454e1040-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"02f299268b86bd8da18d3fd9bcf8063c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":458,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.709846,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415736,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczNn0.-MIxR8-D4v9xuEdk6jrpSu59RLZymug9ThtsTrWRkI4"} 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":"02f299268b86bd8da18d3fd9bcf8063c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:34.314357992Z"}]},"request_id":"fa6fbe32-8860-4048-a14f-604137a99e42","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.6638732} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"02f299268b86bd8da18d3fd9bcf8063c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"23929fa1-23ee-40ac-b670-4da628881330","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.6652412} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0f6d1a4d-0943-4562-b887-095fc0a7d616","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.665472} 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":"454e1040-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:36 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/760bc142-6357-4044-b8cf-096da22cffe0? 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":"02f299268b86bd8da18d3fd9bcf8063c"} device-1 | {"level":"info","message":"GET /devices/760bc142-6357-4044-b8cf-096da22cffe0? 200 13ms","method":"GET","requestID":"02f299268b86bd8da18d3fd9bcf8063c","responseTime":13,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0?"} 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/31b4aced-68b9-4e2c-b9f0-ac24971483c1'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1'"} 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 58ms","method":"POST","requestID":"454e1040-0657-11ef-8390-917b0c22016f","responseTime":58,"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/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c57b33a-082f-425c-a19c-639e5a8d1dd1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.742833} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":459,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.38854,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"455c4110-0657-11ef-8390-917b0c22016f"},"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/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling 200 11ms","method":"POST","requestID":"455c4110-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b316d474-6fc0-4019-8b4d-0b385124c21f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415736.755246} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":460,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.836709,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:36Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"455e3ce0-0657-11ef-8390-917b0c22016f"},"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/760bc142-6357-4044-b8cf-096da22cffe0/signaling 200 11ms","method":"POST","requestID":"455e3ce0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","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/31b4aced-68b9-4e2c-b9f0-ac24971483c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"33dcbbb65497a2e524d90f2985779196","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/c5a3abb9-2233-422a-a86b-23a6f860f177"},{"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/760bc142-6357-4044-b8cf-096da22cffe0"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"33dcbbb65497a2e524d90f2985779196","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"33dcbbb65497a2e524d90f2985779196"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","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/31b4aced-68b9-4e2c-b9f0-ac24971483c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ac746674bd1827548bfdcdd83831aeaa","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/c5a3abb9-2233-422a-a86b-23a6f860f177"},{"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/760bc142-6357-4044-b8cf-096da22cffe0"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31b4aced-68b9-4e2c-b9f0-ac24971483c1","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a2d7868d-b1cd-4f78-b7ed-59a55d2d3e06","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415737.8538363} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":461,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.489109,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1","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":"4605c780-0657-11ef-8390-917b0c22016f"},"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/31b4aced-68b9-4e2c-b9f0-ac24971483c1 200 12ms","method":"GET","requestID":"4605c780-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"ac746674bd1827548bfdcdd83831aeaa","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.043","http_referrer":"","http_user_agent":"node-fetch","requestID":"ac746674bd1827548bfdcdd83831aeaa"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da0941d2-19d1-467e-a01a-22a9e5f02f57","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415737.8871717} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":462,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.153384,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"460aa980-0657-11ef-8390-917b0c22016f"},"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/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling 200 14ms","method":"POST","requestID":"460aa980-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b27bdc17-7f3f-4e48-8a3d-100b1eb5a15c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415737.902809} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":463,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.924488,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"460d4190-0657-11ef-8390-917b0c22016f"},"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/760bc142-6357-4044-b8cf-096da22cffe0/signaling 200 13ms","method":"POST","requestID":"460d4190-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczN30.2GNFT6gz3QDfIAFgMSb-frbKRpWVLk1Wa_z_Y_naJ7M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"d68316ec1f7be0c1198459496ba1bf50","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":464,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.284367,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415737,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczN30.2GNFT6gz3QDfIAFgMSb-frbKRpWVLk1Wa_z_Y_naJ7M"} 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":"d68316ec1f7be0c1198459496ba1bf50"},"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/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} gateway-1 | {"time_local":"29/Apr/2024:18:35:37 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29 HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d68316ec1f7be0c1198459496ba1bf50"} experiment-1 | {"level":"info","message":"GET /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29 200 12ms","method":"GET","requestID":"d68316ec1f7be0c1198459496ba1bf50","responseTime":12,"status":200,"url":"/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczN30.2GNFT6gz3QDfIAFgMSb-frbKRpWVLk1Wa_z_Y_naJ7M","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"84c9ab1816d13942fdc6e2b27dc72654","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":465,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.345701,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415737,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczN30.2GNFT6gz3QDfIAFgMSb-frbKRpWVLk1Wa_z_Y_naJ7M"} 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":"84c9ab1816d13942fdc6e2b27dc72654"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":466,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.720307,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:37Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415737,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczN30.2GNFT6gz3QDfIAFgMSb-frbKRpWVLk1Wa_z_Y_naJ7M"} 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":"46188c30-0657-11ef-8390-917b0c22016f"},"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/31b4aced-68b9-4e2c-b9f0-ac24971483c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f29e6bedfd68db31a6dce1c348af6b2f","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"a6edb90762b3cb7f0b771f6c399e9382","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/c5a3abb9-2233-422a-a86b-23a6f860f177"},{"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/760bc142-6357-4044-b8cf-096da22cffe0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31b4aced-68b9-4e2c-b9f0-ac24971483c1': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31b4aced-68b9-4e2c-b9f0-ac24971483c1","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"79fbf4b7-044d-4c1e-a378-c99e0c29b167","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415737.9913657} 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/c5a3abb9-2233-422a-a86b-23a6f860f177"},{"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/760bc142-6357-4044-b8cf-096da22cffe0"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"}}},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9922860-4723-4258-b51a-8f93653638df","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415737.9923325} 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":"46188c30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"data":{"peerconnection":"31b4aced-68b9-4e2c-b9f0-ac24971483c1","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/31b4aced-68b9-4e2c-b9f0-ac24971483c1 204 58ms","method":"DELETE","requestID":"46188c30-0657-11ef-8390-917b0c22016f","responseTime":58,"status":204,"url":"/peerconnections/31b4aced-68b9-4e2c-b9f0-ac24971483c1"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fc5a3abb9-2233-422a-a86b-23a6f860f177","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73e29b8f-1605-4e69-90a0-5d8160569594","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.054057} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":467,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.651328,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"46244c00-0657-11ef-8390-917b0c22016f"},"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/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling 200 13ms","method":"POST","requestID":"46244c00-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/c5a3abb9-2233-422a-a86b-23a6f860f177/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc279ecdb-ddb9-45d2-aba9-ce4a50fe5e29': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fc279ecdb-ddb9-45d2-aba9-ce4a50fe5e29","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"0e91fc7a-a6c1-415a-8b02-152a888037d6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.0658624} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f52c6e72-0d59-4764-b4d2-9cacb01080f0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.0662744} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"84c9ab1816d13942fdc6e2b27dc72654"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F760bc142-6357-4044-b8cf-096da22cffe0","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b456ac1a-4387-4f4c-9dc6-4edcfebed8e8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.069295} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":468,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.880671,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"462695f0-0657-11ef-8390-917b0c22016f"},"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/760bc142-6357-4044-b8cf-096da22cffe0/signaling 200 13ms","method":"POST","requestID":"462695f0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/760bc142-6357-4044-b8cf-096da22cffe0/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} gateway-1 | {"time_local":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29 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":"84c9ab1816d13942fdc6e2b27dc72654"} gateway-1 | {"time_local":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2438","request_time":"3.253","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0c8c69d0b078c8117898335070ec3888"} experiment-1 | {"level":"info","message":"DELETE /experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29 204 170ms","method":"DELETE","requestID":"84c9ab1816d13942fdc6e2b27dc72654","responseTime":170,"status":204,"url":"/experiments/c279ecdb-ddb9-45d2-aba9-ce4a50fe5e29"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 141ms","method":"POST","requestID":"f29e6bedfd68db31a6dce1c348af6b2f","responseTime":141,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"f29e6bedfd68db31a6dce1c348af6b2f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 142ms","method":"POST","requestID":"a6edb90762b3cb7f0b771f6c399e9382","responseTime":142,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"a6edb90762b3cb7f0b771f6c399e9382"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b1420d0616b7ad8e4e50abce10d42da2","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2565","request_time":"1.786","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"c714381784d541d941034ee811897fd9"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/c5a3abb9-2233-422a-a86b-23a6f860f177' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":469,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.035843,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415738,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610"} 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":"b1420d0616b7ad8e4e50abce10d42da2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/760bc142-6357-4044-b8cf-096da22cffe0' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"13319d1d-3211-42b5-a24e-e72e3186db2a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.160337} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b1420d0616b7ad8e4e50abce10d42da2"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"01a376a8-3a51-4422-a770-c3fa61c6c5a0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.1664312} 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":"b1420d0616b7ad8e4e50abce10d42da2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"d3f876a0-7248-42f5-8ca7-dddbc98c198b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.176569} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"554d5de4-133e-4519-8840-3d808403f0d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.1768756} 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":"b1420d0616b7ad8e4e50abce10d42da2"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"b7afcded-1965-4ea0-801d-0c0d76f4de1f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.1812148} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b1420d0616b7ad8e4e50abce10d42da2"},"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":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.054","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b1420d0616b7ad8e4e50abce10d42da2"} device-1 | {"level":"info","message":"POST /devices? 201 47ms","method":"POST","requestID":"b1420d0616b7ad8e4e50abce10d42da2","responseTime":47,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5195930647b1e942485e737af34b2827","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":470,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.77283,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415738,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610"} 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":"5195930647b1e942485e737af34b2827"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"981ecbd1-23f7-4d48-8831-67806347efd6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.2056043} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5195930647b1e942485e737af34b2827"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0f89177-a209-4a26-8ca4-b427810548f0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.2103333} 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":"5195930647b1e942485e737af34b2827"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"9c70090d-18fb-4cea-842c-2a70e5001b33","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.222219} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"76b231ff-5be1-4154-a318-13c75b57c390","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.2224011} 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":"5195930647b1e942485e737af34b2827"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.222196763Z"}]},"request_id":"f2a1f829-1f6a-465f-b59a-a0d6add483cd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.227029} 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":"5195930647b1e942485e737af34b2827"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 40ms","method":"POST","requestID":"5195930647b1e942485e737af34b2827","responseTime":40,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5195930647b1e942485e737af34b2827"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8ba6335daae0f7f873b6fe4015a401f8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":471,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.014412,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415738,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610"} 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":"8ba6335daae0f7f873b6fe4015a401f8"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"04580b36-2212-4386-a891-8c8c3caae398","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.7169578} 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":"8ba6335daae0f7f873b6fe4015a401f8"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"818a3c71-3f15-4052-9dcd-4376e06a8a7e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.7241232} 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":"8ba6335daae0f7f873b6fe4015a401f8"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"5485fa72-2721-468a-93fa-547c94319405","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415738.7465355} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8ba6335daae0f7f873b6fe4015a401f8"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6 200 47ms","method":"PATCH","requestID":"8ba6335daae0f7f873b6fe4015a401f8","responseTime":47,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"} gateway-1 | {"time_local":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.053","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"8ba6335daae0f7f873b6fe4015a401f8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"126dbc4109a9527ca4f959eec3328142","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":472,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.612578,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:38Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415738,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTczOH0.eTMUKV4IMjb9ew6qVISBQli4LTFFl7sWBjLaYW2m610"} 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":"126dbc4109a9527ca4f959eec3328142"},"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":"29/Apr/2024:18:35:38 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"126dbc4109a9527ca4f959eec3328142"} device-1 | {"level":"info","message":"POST /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/websocket 200 20ms","method":"POST","requestID":"126dbc4109a9527ca4f959eec3328142","responseTime":20,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"d63fae5e3dbb2fcac2c02cee79e47885","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/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":"d63fae5e3dbb2fcac2c02cee79e47885"} device-1 | {"level":"info","message":"OPTIONS /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/websocket 200 1ms","method":"OPTIONS","requestID":"d63fae5e3dbb2fcac2c02cee79e47885","responseTime":1,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"d59d1970978d9255a3003b71760cb943","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":473,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.825103,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"d59d1970978d9255a3003b71760cb943"},"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":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/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":"d59d1970978d9255a3003b71760cb943"} device-1 | {"level":"info","message":"POST /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/websocket 200 38ms","method":"POST","requestID":"d59d1970978d9255a3003b71760cb943","responseTime":38,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0384107e9c2628e00e5f97b783634c68","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":474,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.392625,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"0384107e9c2628e00e5f97b783634c68"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"c526b0f8-3312-4d97-b4c6-a354c65b145e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.3080068} 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":"0384107e9c2628e00e5f97b783634c68"},"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":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0384107e9c2628e00e5f97b783634c68"} device-1 | {"level":"info","message":"GET /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? 200 22ms","method":"GET","requestID":"0384107e9c2628e00e5f97b783634c68","responseTime":22,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c651e420f011d5bfc6109dc7f5e6f1ec","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":475,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.39314,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"c651e420f011d5bfc6109dc7f5e6f1ec"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.222196763Z"}]},"request_id":"abf5043b-4911-49ae-a6e8-3b63aef6e280","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.3378642} 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":"c651e420f011d5bfc6109dc7f5e6f1ec"},"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":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? 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":"c651e420f011d5bfc6109dc7f5e6f1ec"} device-1 | {"level":"info","message":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? 200 18ms","method":"GET","requestID":"c651e420f011d5bfc6109dc7f5e6f1ec","responseTime":18,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"fd59214d06291f264876314c7bfd8a45","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:45964","level":"info","msg":"Received request.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":476,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.326055,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"fd59214d06291f264876314c7bfd8a45"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"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:45964","level":"info","msg":"Received request.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":477,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.639002,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"478c1960-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":478,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.615876,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"478c6780-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"602c25e3-d8fa-4c82-9d5f-b452c4ab2b47","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4154108} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"478c1960-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.222196763Z"}]},"request_id":"9339b257-e58a-4043-b707-6682fb313c7a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4158998} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"478c6780-0657-11ef-8390-917b0c22016f"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? 200 15ms","method":"GET","requestID":"478c1960-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? 200 14ms","method":"GET","requestID":"478c6780-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":479,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.734751,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"4794a4e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":480,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.71117,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"4794f300-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cbdbc4f3-a5e9-4494-a26a-75445d009fc9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4742897} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":481,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.791348,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47951a10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"53a8437b-59a2-4f5b-b8a7-7bf497a57721","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.477893} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.222196763Z"}]},"request_id":"7a3ca16e-ad87-43db-b318-10963503c7c7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4798582} 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":"4794a4e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"level":"info","message":"POST /relations/query 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4794f300-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F36c4efe2-0e2a-425b-9219-946e9ea3309a#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F36c4efe2-0e2a-425b-9219-946e9ea3309a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"83f89f6b-14e7-445a-b548-295a7b64911a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4871273} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1622aa79-9f6c-465c-87a5-aefc9c416f40","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4873555} 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":"fd59214d06291f264876314c7bfd8a45"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":16}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling 200 25ms","method":"POST","requestID":"47951a10-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? 200 29ms","method":"GET","requestID":"4794a4e0-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? 200 28ms","method":"GET","requestID":"4794f300-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3d9ccecc-9edf-4cb7-918a-975a77e0194f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.4998991} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":482,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.269757,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1291","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fd59214d06291f264876314c7bfd8a45"} experiment-1 | {"level":"info","message":"POST /experiments? 201 148ms","method":"POST","requestID":"fd59214d06291f264876314c7bfd8a45","responseTime":148,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4799adf0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"16111076-a337-49c4-9891-afbc1b8e8d47","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.5033772} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":483,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.817152,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4799fc10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cbd905abb015474446c921a7ed661af9","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"POST /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling 200 15ms","method":"POST","requestID":"4799adf0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling 200 17ms","method":"POST","requestID":"4799fc10-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":484,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.754416,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"cbd905abb015474446c921a7ed661af9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.176544452Z"}]},"request_id":"b516cd96-4999-4648-bd25-69eabe47099f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.5228157} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f807f023-1b80-4418-9de6-2c0b22295254","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.522948} 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":"cbd905abb015474446c921a7ed661af9"},"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:45964","level":"info","msg":"Sent response.","req_id":485,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.42578,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"479d0950-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? 200 15ms","method":"GET","requestID":"cbd905abb015474446c921a7ed661af9","responseTime":15,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cbd905abb015474446c921a7ed661af9"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling 200 12ms","method":"POST","requestID":"479d0950-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"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":"8c807fb7-cbcd-4b41-9963-2c40badf224e"},{"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":"53f9c7ae-a24b-4bb9-9729-84509932339c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"8eafbc51-6a57-4c08-a18d-f205f43cd199"}]},"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/8ec845f6-11c2-476d-a8b6-352656e5f4cc"},{"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7a6cd9f7c76b02417778024fc6a14b24","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":486,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.660551,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"479f7a50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":487,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.571145,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"7a6cd9f7c76b02417778024fc6a14b24"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:38.222196763Z"}]},"request_id":"ce2713ee-9c21-4195-8723-d55791a83546","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.542352} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7a6cd9f7c76b02417778024fc6a14b24"},"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":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? HTTP/1.1","status": "200","body_bytes_sent":"307","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7a6cd9f7c76b02417778024fc6a14b24"} device-1 | {"level":"info","message":"GET /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc? 200 12ms","method":"GET","requestID":"7a6cd9f7c76b02417778024fc6a14b24","responseTime":12,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"29846446-0274-4b1b-931b-816384f1a5f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.5466254} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"39df309a-97e8-4a5e-98b9-ed9c11d2755a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.5471714} 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":"479f7a50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/d2a52bbf-dc49-41d2-a928-dd15c20ceebb'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"479f7a50-0657-11ef-8390-917b0c22016f","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0c9d86bc-5673-4507-9c7b-446072838a9a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.6121662} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":488,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.500415,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47aac4f0-0657-11ef-8390-917b0c22016f"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling 200 10ms","method":"POST","requestID":"47aac4f0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2105ee52-03c7-4412-a56b-9566e5712e37","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.6237512} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":489,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.635521,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47ac99b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a048ce03d7c30930185af92c0f16faf2","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/8ec845f6-11c2-476d-a8b6-352656e5f4cc"},{"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling 200 12ms","method":"POST","requestID":"47ac99b0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"a048ce03d7c30930185af92c0f16faf2","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"a048ce03d7c30930185af92c0f16faf2"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","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/d2a52bbf-dc49-41d2-a928-dd15c20ceebb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 0ms","method":"GET","requestID":"dd7e42518dccc08a5b96ab91c6039db3","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/8ec845f6-11c2-476d-a8b6-352656e5f4cc"},{"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2a52bbf-dc49-41d2-a928-dd15c20ceebb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"eb7f9218-d600-40c5-aa73-53539356b2c5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.6986418} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":490,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.144291,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47b80b60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb 200 8ms","method":"GET","requestID":"47b80b60-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"dd7e42518dccc08a5b96ab91c6039db3","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.032","http_referrer":"","http_user_agent":"node-fetch","requestID":"dd7e42518dccc08a5b96ab91c6039db3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0fad7f6b-6f5b-4a97-ae84-0be5a3c431a8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.724397} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":491,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.629188,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47bc0300-0657-11ef-8390-917b0c22016f"},"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/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling 200 8ms","method":"POST","requestID":"47bc0300-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"67eb09cf-65d4-4f13-9564-23bd5873ee1b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.7347953} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":492,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.530891,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47bd89a0-0657-11ef-8390-917b0c22016f"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling 200 9ms","method":"POST","requestID":"47bd89a0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5cdabdfa6c9d017f2bb148b32e58e9cc","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":493,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.187739,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"5cdabdfa6c9d017f2bb148b32e58e9cc"},"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/36c4efe2-0e2a-425b-9219-946e9ea3309a"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a HTTP/1.1","status": "200","body_bytes_sent":"1364","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5cdabdfa6c9d017f2bb148b32e58e9cc"} experiment-1 | {"level":"info","message":"GET /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a 200 15ms","method":"GET","requestID":"5cdabdfa6c9d017f2bb148b32e58e9cc","responseTime":15,"status":200,"url":"/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4560a1d3fe36e9eb8926fb08051c972d","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":494,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.952641,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"4560a1d3fe36e9eb8926fb08051c972d"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":495,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.992767,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"47cccbe0-0657-11ef-8390-917b0c22016f"},"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/d2a52bbf-dc49-41d2-a928-dd15c20ceebb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2a52bbf-dc49-41d2-a928-dd15c20ceebb': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd2a52bbf-dc49-41d2-a928-dd15c20ceebb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"5e0e9479-9bfa-41c0-a166-98ed87f9b78f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.853898} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0217ba24-6d95-4533-b621-4018bebfc84c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.8546126} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"976632ae5bd5f8fd6ab0afdb4f2fddd0","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":"47cccbe0-0657-11ef-8390-917b0c22016f"},"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:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/8ec845f6-11c2-476d-a8b6-352656e5f4cc"},{"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"695fb0fe67deeb0e01aac253fc5babbd","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc"},{"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"d2a52bbf-dc49-41d2-a928-dd15c20ceebb","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/d2a52bbf-dc49-41d2-a928-dd15c20ceebb 204 56ms","method":"DELETE","requestID":"47cccbe0-0657-11ef-8390-917b0c22016f","responseTime":56,"status":204,"url":"/peerconnections/d2a52bbf-dc49-41d2-a928-dd15c20ceebb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8ec845f6-11c2-476d-a8b6-352656e5f4cc","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"73a8c8c2-7884-454c-baf1-6d3573e193c7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.9151194} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":496,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.481002,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47d8b2c0-0657-11ef-8390-917b0c22016f"},"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/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling 200 14ms","method":"POST","requestID":"47d8b2c0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F36c4efe2-0e2a-425b-9219-946e9ea3309a': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F36c4efe2-0e2a-425b-9219-946e9ea3309a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"38e4d12f-a13d-4843-833f-2c952537c9e7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.9237332} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a0fbfd01-9742-4fbb-b4ba-a4e226f6478a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.9238968} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4560a1d3fe36e9eb8926fb08051c972d"},"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:45964","level":"info","msg":"Received request.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff59d7604-4dd6-4fd1-9aae-4abf797e4bb6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f894a388-1883-46ff-b9bb-5baac920e287","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415740.9300196} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":497,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.176463,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"47db4ad0-0657-11ef-8390-917b0c22016f"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling 200 12ms","method":"POST","requestID":"47db4ad0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a 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":"4560a1d3fe36e9eb8926fb08051c972d"} experiment-1 | {"level":"info","message":"DELETE /experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a 204 169ms","method":"DELETE","requestID":"4560a1d3fe36e9eb8926fb08051c972d","responseTime":169,"status":204,"url":"/experiments/36c4efe2-0e2a-425b-9219-946e9ea3309a"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2254","request_time":"2.206","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"114494378cf548662702b55872113cc3"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 129ms","method":"POST","requestID":"976632ae5bd5f8fd6ab0afdb4f2fddd0","responseTime":129,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"976632ae5bd5f8fd6ab0afdb4f2fddd0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 128ms","method":"POST","requestID":"695fb0fe67deeb0e01aac253fc5babbd","responseTime":128,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.135","http_referrer":"","http_user_agent":"node-fetch","requestID":"695fb0fe67deeb0e01aac253fc5babbd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e34e491c4c29611ba8b122bf121fe9b8","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:40 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2570","request_time":"0.724","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"69c57580b29922215e10f1ea03b7524c"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":498,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.808468,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:40Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415740,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MH0.9Wun2JR-GniXsOa4UvYTtAiThFSjyGlsHWqDcwKDnIs"} 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":"e34e491c4c29611ba8b122bf121fe9b8"},"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/f59d7604-4dd6-4fd1-9aae-4abf797e4bb6' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"620bdf39-0b16-4adb-be8b-58629cc5f20c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0141726} 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":"e34e491c4c29611ba8b122bf121fe9b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8ec845f6-11c2-476d-a8b6-352656e5f4cc' 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b331e255-778a-478f-8c6c-cd638e0eb1d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0203857} 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":"e34e491c4c29611ba8b122bf121fe9b8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"4442c0c8-1369-4ea4-ac40-d495f775cc00","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0306268} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"db2b37c0-d7ff-4ec9-a0a4-bbf9e28aee6b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0307415} 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":"e34e491c4c29611ba8b122bf121fe9b8"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"0b348a0e-497a-401e-8083-1ea7f0400a3a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.035822} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e34e491c4c29611ba8b122bf121fe9b8"},"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":"29/Apr/2024:18:35:41 +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":"e34e491c4c29611ba8b122bf121fe9b8"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"e34e491c4c29611ba8b122bf121fe9b8","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eb028e97980a311cf10bf03496dd7f4b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":499,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.925927,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"eb028e97980a311cf10bf03496dd7f4b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3475d759-d383-4b9e-9d30-c3a67aa2000a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0665703} 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":"eb028e97980a311cf10bf03496dd7f4b"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c4c0c8e-611d-44ec-8009-421c589d9d9c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.071496} 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":"eb028e97980a311cf10bf03496dd7f4b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a8a9b662-615c-4a83-9fc2-a6cddada1691","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0798948} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bf78e22d-da66-46c6-943f-bbace08440f2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.080196} 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":"eb028e97980a311cf10bf03496dd7f4b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"569f82df-fc33-4ecf-a40c-afc56d2c7644","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.0846176} 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":"eb028e97980a311cf10bf03496dd7f4b"},"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":"29/Apr/2024:18:35:41 +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":"eb028e97980a311cf10bf03496dd7f4b"} device-1 | {"level":"info","message":"POST /devices? 201 42ms","method":"POST","requestID":"eb028e97980a311cf10bf03496dd7f4b","responseTime":42,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0b949986f33d0e3b92e00175d68a7c01","responseTime":3,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"898d0aeb7654687d26e88cf556efcecc","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":500,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.617455,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"0b949986f33d0e3b92e00175d68a7c01"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":501,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.699389,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"898d0aeb7654687d26e88cf556efcecc"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"d3510e81-22d7-48d8-be20-1867c38eca36","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5623} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0b949986f33d0e3b92e00175d68a7c01"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"e508e553-1db5-4742-a81a-daea369006ac","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5632975} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"898d0aeb7654687d26e88cf556efcecc"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3d57772b-fba4-4f91-8fd8-3f42e2d1d74c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5672264} 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":"0b949986f33d0e3b92e00175d68a7c01"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f905f51f-caee-484a-8c5d-3819d1838fe8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5689466} 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":"898d0aeb7654687d26e88cf556efcecc"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"6ae9264b-9745-4906-abab-b88706b51631","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5718892} 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":"898d0aeb7654687d26e88cf556efcecc"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/6bee9122-a85e-495b-965e-dc8051a73a54 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"898d0aeb7654687d26e88cf556efcecc"} device-1 | {"level":"info","message":"PATCH /devices/6bee9122-a85e-495b-965e-dc8051a73a54 200 21ms","method":"PATCH","requestID":"898d0aeb7654687d26e88cf556efcecc","responseTime":21,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c9891ade96ec5860a9eeb98d724e2779","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":502,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.679926,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"c9891ade96ec5860a9eeb98d724e2779"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"99db29c6-df0e-4b18-9c2b-70e21daa7a69","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.5997105} 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":"0b949986f33d0e3b92e00175d68a7c01"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/cd629ef8-81b9-4611-88c0-c518a900024a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0b949986f33d0e3b92e00175d68a7c01"} device-1 | {"level":"info","message":"PATCH /devices/cd629ef8-81b9-4611-88c0-c518a900024a 200 50ms","method":"PATCH","requestID":"0b949986f33d0e3b92e00175d68a7c01","responseTime":50,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"10dd74a23a3c7ca045cdc73b8b36f9b5","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/6bee9122-a85e-495b-965e-dc8051a73a54/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c9891ade96ec5860a9eeb98d724e2779"} device-1 | {"level":"info","message":"POST /devices/6bee9122-a85e-495b-965e-dc8051a73a54/websocket 200 30ms","method":"POST","requestID":"c9891ade96ec5860a9eeb98d724e2779","responseTime":30,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/websocket"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":503,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.776028,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"10dd74a23a3c7ca045cdc73b8b36f9b5"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.015","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"10dd74a23a3c7ca045cdc73b8b36f9b5"} device-1 | {"level":"info","message":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/websocket 200 12ms","method":"POST","requestID":"10dd74a23a3c7ca045cdc73b8b36f9b5","responseTime":12,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0eb4e99b411c25347727fde6ea77d77b","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":504,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.507499,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"0eb4e99b411c25347727fde6ea77d77b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"067c499d-fde9-4104-82e6-b9f61556c16d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.6519713} 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":"0eb4e99b411c25347727fde6ea77d77b"},"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/6bee9122-a85e-495b-965e-dc8051a73a54? 200 13ms","method":"GET","requestID":"0eb4e99b411c25347727fde6ea77d77b","responseTime":13,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6bee9122-a85e-495b-965e-dc8051a73a54? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0eb4e99b411c25347727fde6ea77d77b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8be2c96ca6e6e1ebcd183ff9d6dd5e61","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":505,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.915604,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"8be2c96ca6e6e1ebcd183ff9d6dd5e61"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"7d7294ad-3c2f-43d4-b535-627450b3254c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.6720445} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"8be2c96ca6e6e1ebcd183ff9d6dd5e61"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8be2c96ca6e6e1ebcd183ff9d6dd5e61"} device-1 | {"level":"info","message":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? 200 15ms","method":"GET","requestID":"8be2c96ca6e6e1ebcd183ff9d6dd5e61","responseTime":15,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b446f26d29d1b0e41058c99677054fb5","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:45964","level":"info","msg":"Received request.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":506,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.690378,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"b446f26d29d1b0e41058c99677054fb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"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:45964","level":"info","msg":"Received request.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":507,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.206244,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"48586a10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":508,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.807782,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"4858b830-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"a9d61a90-0b47-45ba-914f-f0c393e03a4a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.7583435} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48586a10-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"05c08106-5989-4081-bcce-c988d869db34","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.7593365} 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":"4858b830-0657-11ef-8390-917b0c22016f"},"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/6bee9122-a85e-495b-965e-dc8051a73a54? 200 21ms","method":"GET","requestID":"48586a10-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? 200 21ms","method":"GET","requestID":"4858b830-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":509,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.318801,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"48649f10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":510,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.6692,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"4864ed30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"49becdc4-7c8e-4f8d-83e0-d136353cb781","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.838858} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":511,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.472322,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48653b50-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"f9ffae9b-0b4c-4207-9eb5-20d08d1f59ba","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8418} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"a9701e35-738c-4139-9171-7d03ddf54dbc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.843342} 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":"48649f10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"level":"info","message":"POST /relations/query 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4864ed30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2695dbba-7844-4cab-ae2a-51e7184209ae#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2695dbba-7844-4cab-ae2a-51e7184209ae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"1920f36c-ecec-479a-ac82-c0380182833f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8479803} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f02e0664-d034-4731-a2f5-a2c77a8a0833","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8481371} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"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":"b446f26d29d1b0e41058c99677054fb5"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"POST /devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling 200 20ms","method":"POST","requestID":"48653b50-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/6bee9122-a85e-495b-965e-dc8051a73a54? 200 25ms","method":"GET","requestID":"48649f10-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? 200 24ms","method":"GET","requestID":"4864ed30-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47705d03-3280-4137-b5d1-bad1c047f8eb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8593934} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":512,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.644446,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b446f26d29d1b0e41058c99677054fb5"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} experiment-1 | {"level":"info","message":"POST /experiments? 201 177ms","method":"POST","requestID":"b446f26d29d1b0e41058c99677054fb5","responseTime":177,"status":201,"url":"/experiments?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"486932f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9723744b-4177-4c37-91b9-f96f4470e060","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8627813} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":513,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.632069,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} device-1 | {"level":"info","message":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling 200 10ms","method":"POST","requestID":"486932f0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4c4e54195e6d5c995608845d0da1cc2a","responseTime":4,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48698110-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling 200 12ms","method":"POST","requestID":"48698110-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":514,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.854231,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"4c4e54195e6d5c995608845d0da1cc2a"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.030591666Z"}]},"request_id":"1172c6ad-1bc0-4adc-8c9a-2ca36506b5d7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8762443} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b7715a3-d7d6-462d-9ede-1ce9729de6fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8764508} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4c4e54195e6d5c995608845d0da1cc2a"},"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:45964","level":"info","msg":"Sent response.","req_id":515,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.129682,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"486bcb00-0657-11ef-8390-917b0c22016f"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/6bee9122-a85e-495b-965e-dc8051a73a54? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4c4e54195e6d5c995608845d0da1cc2a"} device-1 | {"level":"info","message":"GET /devices/6bee9122-a85e-495b-965e-dc8051a73a54? 200 14ms","method":"GET","requestID":"4c4e54195e6d5c995608845d0da1cc2a","responseTime":14,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling 200 10ms","method":"POST","requestID":"486bcb00-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"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":"ab6ec387-e522-4b6d-abc7-bda08d7b2c3d"},{"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":"033942da-1d28-43d8-bc50-f69bcea2adc0"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"d385c6b2-999b-4e7e-9d4d-ad0738a7417a"}]},"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/cd629ef8-81b9-4611-88c0-c518a900024a"},{"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/6bee9122-a85e-495b-965e-dc8051a73a54"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e286bad3d6c825e0cada769d5ef79a50","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":516,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.786778,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"486dc6d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":517,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.584863,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415741,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0MX0.2VJHl5UGUy5B-s0y0aVWrw2qalA3ulBjV7HAVDFtvtI"} 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":"e286bad3d6c825e0cada769d5ef79a50"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:41.079873525Z"}]},"request_id":"207fba50-0365-4276-92db-bb7a583c7264","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8935788} 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":"e286bad3d6c825e0cada769d5ef79a50"},"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":"29/Apr/2024:18:35:41 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e286bad3d6c825e0cada769d5ef79a50"} device-1 | {"level":"info","message":"GET /devices/cd629ef8-81b9-4611-88c0-c518a900024a? 200 10ms","method":"GET","requestID":"e286bad3d6c825e0cada769d5ef79a50","responseTime":10,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"20d3e0af-06cb-43cc-9439-7775c6533d3f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.8972867} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cb1e387d-6d20-4d30-9888-1dfd755ef3a3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.897559} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"486dc6d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a'"} 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":"486dc6d0-0657-11ef-8390-917b0c22016f","responseTime":37,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"75548bc5-ecd0-4473-9ed2-1d8dac9d9553","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.9593654} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":518,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.384176,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:41Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48784e20-0657-11ef-8390-917b0c22016f"},"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/6bee9122-a85e-495b-965e-dc8051a73a54/signaling 200 10ms","method":"POST","requestID":"48784e20-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:41Z"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e9280a90-8272-42e6-877d-f71a0bbe8a49","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415741.9696074} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":519,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.412425,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35: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:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e944088e4267ef455c8496f392fca1d3","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4879fbd0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} 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/cd629ef8-81b9-4611-88c0-c518a900024a"},{"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/6bee9122-a85e-495b-965e-dc8051a73a54"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"e944088e4267ef455c8496f392fca1d3","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"e944088e4267ef455c8496f392fca1d3"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling 200 21ms","method":"POST","requestID":"4879fbd0-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","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/9f8439d7-157e-42eb-8074-2263e09e845a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"ac0df76dabdb4fd7f2b3b25009f113e2","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/cd629ef8-81b9-4611-88c0-c518a900024a"},{"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/6bee9122-a85e-495b-965e-dc8051a73a54"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f8439d7-157e-42eb-8074-2263e09e845a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1ddc88bf-3446-4567-a4d6-90b1ec0f7fd7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.02757} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":520,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.577804,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a","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":"4882ae60-0657-11ef-8390-917b0c22016f"},"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/9f8439d7-157e-42eb-8074-2263e09e845a 200 10ms","method":"GET","requestID":"4882ae60-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"ac0df76dabdb4fd7f2b3b25009f113e2","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"ac0df76dabdb4fd7f2b3b25009f113e2"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"09aea0b7-bc65-414a-b352-b4ca71a871da","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.053031} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":521,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.494494,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4886a600-0657-11ef-8390-917b0c22016f"},"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/cd629ef8-81b9-4611-88c0-c518a900024a/signaling 200 10ms","method":"POST","requestID":"4886a600-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0733f94f-3214-475e-8728-c893957ad1af","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.0644588} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":522,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.046954,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48887ac0-0657-11ef-8390-917b0c22016f"},"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/6bee9122-a85e-495b-965e-dc8051a73a54/signaling 200 10ms","method":"POST","requestID":"48887ac0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c8b34d709a74aad893a5819ba2c04585","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":523,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.265466,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"c8b34d709a74aad893a5819ba2c04585"},"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/2695dbba-7844-4cab-ae2a-51e7184209ae"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae 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":"c8b34d709a74aad893a5819ba2c04585"} experiment-1 | {"level":"info","message":"GET /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae 200 16ms","method":"GET","requestID":"c8b34d709a74aad893a5819ba2c04585","responseTime":16,"status":200,"url":"/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"2d5d549f28899164badf05a751ea58d3","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":524,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.332396,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"2d5d549f28899164badf05a751ea58d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":525,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.212373,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"489747d0-0657-11ef-8390-917b0c22016f"},"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/9f8439d7-157e-42eb-8074-2263e09e845a' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c268e36baa5d79d0b9bb543396c5cfac","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f8439d7-157e-42eb-8074-2263e09e845a': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9f8439d7-157e-42eb-8074-2263e09e845a","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"f2211b13-14b0-485e-9466-7f05660e03bc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.184241} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a"},{"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/6bee9122-a85e-495b-965e-dc8051a73a54"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"}}},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b519131d-430d-4e3f-941d-9bebba64dbe7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.1850681} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5c39b3a4d49bc4c4f392582a69fe24d8","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"489747d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/cd629ef8-81b9-4611-88c0-c518a900024a"},{"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/6bee9122-a85e-495b-965e-dc8051a73a54"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"9f8439d7-157e-42eb-8074-2263e09e845a","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/9f8439d7-157e-42eb-8074-2263e09e845a 204 55ms","method":"DELETE","requestID":"489747d0-0657-11ef-8390-917b0c22016f","responseTime":55,"status":204,"url":"/peerconnections/9f8439d7-157e-42eb-8074-2263e09e845a"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fcd629ef8-81b9-4611-88c0-c518a900024a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fe6decb5-4e0b-488a-b14d-2a4a1758664f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.2428293} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":526,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.2366,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/cd629ef8-81b9-4611-88c0-c518a900024a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48a32eb0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling 200 16ms","method":"POST","requestID":"48a32eb0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/cd629ef8-81b9-4611-88c0-c518a900024a/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2695dbba-7844-4cab-ae2a-51e7184209ae': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F2695dbba-7844-4cab-ae2a-51e7184209ae","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"f36d5b06-3740-4da3-8b28-d79b35427187","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.2533226} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"117ba3da-ff98-4e31-ab66-ef4a13fec3e6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.2537053} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2d5d549f28899164badf05a751ea58d3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6bee9122-a85e-495b-965e-dc8051a73a54","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"452083eb-8db7-4e46-95db-d3087023e7ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.2610767} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":527,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.834882,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/6bee9122-a85e-495b-965e-dc8051a73a54","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"48a614e0-0657-11ef-8390-917b0c22016f"},"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/6bee9122-a85e-495b-965e-dc8051a73a54/signaling 200 14ms","method":"POST","requestID":"48a614e0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/6bee9122-a85e-495b-965e-dc8051a73a54/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2d5d549f28899164badf05a751ea58d3"} experiment-1 | {"level":"info","message":"DELETE /experiments/2695dbba-7844-4cab-ae2a-51e7184209ae 204 177ms","method":"DELETE","requestID":"2d5d549f28899164badf05a751ea58d3","responseTime":177,"status":204,"url":"/experiments/2695dbba-7844-4cab-ae2a-51e7184209ae"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2572","request_time":"0.707","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7e2695e48a51006fd8b520d5d29c95e1"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2570","request_time":"0.697","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2dc9fa6e1cc2df111a584ed68e0841fd"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"c268e36baa5d79d0b9bb543396c5cfac","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"c268e36baa5d79d0b9bb543396c5cfac"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"5c39b3a4d49bc4c4f392582a69fe24d8","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"5c39b3a4d49bc4c4f392582a69fe24d8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5246b759b7b1369706dc2e8541684dac","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/cd629ef8-81b9-4611-88c0-c518a900024a' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":528,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.15908,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"5246b759b7b1369706dc2e8541684dac"},"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/6bee9122-a85e-495b-965e-dc8051a73a54' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"8a14a84a-6b80-4618-9c70-973396328a31","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.3501282} 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":"5246b759b7b1369706dc2e8541684dac"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"47032bba-0824-46e0-bef3-49437c22272b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.356764} 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":"5246b759b7b1369706dc2e8541684dac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"fe73afe5-d258-43c2-9c0d-5be35b6dd4d8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.367634} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a04032e7-6173-4456-a991-39e4cdabe55f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.3678172} 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":"5246b759b7b1369706dc2e8541684dac"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"b42d760b-4548-4771-9cfd-74de14a09176","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.373235} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5246b759b7b1369706dc2e8541684dac"},"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":"29/Apr/2024:18:35:42 +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":"5246b759b7b1369706dc2e8541684dac"} device-1 | {"level":"info","message":"POST /devices? 201 49ms","method":"POST","requestID":"5246b759b7b1369706dc2e8541684dac","responseTime":49,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a102baf9f7eb563636227cf5f8d26e5c","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":529,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.943332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"a102baf9f7eb563636227cf5f8d26e5c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9d52883a-dd57-4f59-ba96-f3976fb58fd3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.4021444} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a102baf9f7eb563636227cf5f8d26e5c"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d02d11af-bd07-4a0e-874a-a67ee8161569","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.407572} 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":"a102baf9f7eb563636227cf5f8d26e5c"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"7a1751bc-4959-42f2-9f48-18bee4ba9b1c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.4202416} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"17af7f27-fff2-49ff-a7c7-be8358dae035","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.4205496} 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":"a102baf9f7eb563636227cf5f8d26e5c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"133e32f6-a410-4c67-a1e9-a94d3a5c0a15","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.4255357} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a102baf9f7eb563636227cf5f8d26e5c"},"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":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.051","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a102baf9f7eb563636227cf5f8d26e5c"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"a102baf9f7eb563636227cf5f8d26e5c","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"827ca2a023c1614ef00486da89a7e9da","responseTime":5,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"96cce31df8fcad2723c347f13df25794","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":530,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.678418,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"827ca2a023c1614ef00486da89a7e9da"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":531,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.628102,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"96cce31df8fcad2723c347f13df25794"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"2e3a7a02-2226-4be2-8bf8-f58fba9a766d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.922784} 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":"827ca2a023c1614ef00486da89a7e9da"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"4fe83fba-febb-46a4-9511-73715d083379","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.9234958} 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":"96cce31df8fcad2723c347f13df25794"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7f75e01e-6b1b-43dd-bb03-fa46508cdc38","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.928329} 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":"827ca2a023c1614ef00486da89a7e9da"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"83bdb5df-4f3b-43bb-ae53-c80c4a6f3364","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.932393} 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":"96cce31df8fcad2723c347f13df25794"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"e48fbd63-3e5b-46ec-a827-37cb23b4bf3f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.9366956} 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":"96cce31df8fcad2723c347f13df25794"},"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":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.036","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"96cce31df8fcad2723c347f13df25794"} device-1 | {"level":"info","message":"PATCH /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b 200 28ms","method":"PATCH","requestID":"96cce31df8fcad2723c347f13df25794","responseTime":28,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"75d583b7b74b1d9b67866f0a97708a26","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":532,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.780598,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"75d583b7b74b1d9b67866f0a97708a26"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"53e23c34-70cd-4df1-a633-15f7286c0c05","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415742.9564452} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"827ca2a023c1614ef00486da89a7e9da"},"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":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.057","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"827ca2a023c1614ef00486da89a7e9da"} device-1 | {"level":"info","message":"PATCH /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec 200 51ms","method":"PATCH","requestID":"827ca2a023c1614ef00486da89a7e9da","responseTime":51,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8770ffdc49b04ad6ec34c5ffeccfdac1","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"75d583b7b74b1d9b67866f0a97708a26"} device-1 | {"level":"info","message":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/websocket 200 23ms","method":"POST","requestID":"75d583b7b74b1d9b67866f0a97708a26","responseTime":23,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/websocket"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":533,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.987654,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:42Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415742,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Mn0.BjFQZN9pnw5_v-frnTGobMKCB7poMT4AQricSpYKJAQ"} 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":"8770ffdc49b04ad6ec34c5ffeccfdac1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"device 'http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/websocket 200 28ms","method":"POST","requestID":"8770ffdc49b04ad6ec34c5ffeccfdac1","responseTime":28,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:42 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/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":"8770ffdc49b04ad6ec34c5ffeccfdac1"} device-1 | {"level":"info","message":"device 'http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"7162dbe46b2a4e14e62c5b8f7ae28ca9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":534,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.11296,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"7162dbe46b2a4e14e62c5b8f7ae28ca9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"6def2b1a-2deb-4347-823d-a2d95725055f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.0195591} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7162dbe46b2a4e14e62c5b8f7ae28ca9"},"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? 200 14ms","method":"GET","requestID":"7162dbe46b2a4e14e62c5b8f7ae28ca9","responseTime":14,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"7162dbe46b2a4e14e62c5b8f7ae28ca9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d953a566b4e46fb01421a2984e9bfd68","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":535,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.189212,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"d953a566b4e46fb01421a2984e9bfd68"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"5afb0424-cece-4122-911d-777c1065fd5e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.041298} 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":"d953a566b4e46fb01421a2984e9bfd68"},"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":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d953a566b4e46fb01421a2984e9bfd68"} device-1 | {"level":"info","message":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? 200 16ms","method":"GET","requestID":"d953a566b4e46fb01421a2984e9bfd68","responseTime":16,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4955a7a76199ac7b15743d1c85105636","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:45964","level":"info","msg":"Received request.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":536,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.284467,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"4955a7a76199ac7b15743d1c85105636"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"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:45964","level":"info","msg":"Received request.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":537,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.291774,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"49288b50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":538,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.555045,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"4928b260-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"e0b31a04-9132-47fe-ae80-02ab0ee8bcff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.1217031} 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":"49288b50-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"a618ea44-9f45-45ce-b11a-75dbff321549","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.1239145} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4928b260-0657-11ef-8390-917b0c22016f"},"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? 200 22ms","method":"GET","requestID":"49288b50-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? 200 22ms","method":"GET","requestID":"4928b260-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"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:45964","level":"info","msg":"Received request.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":539,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.538496,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"49349940-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":540,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.847149,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"4934e760-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":541,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.491079,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7dadf4fb-f6ea-469b-9311-f8e619f455cb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.204621} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"0e64d2b9-d794-4b1c-af0b-8eafa84f11db","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.205451} 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":"49349940-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"49355c90-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"62a7955a-9a17-4ddf-a645-7adc5c86d591","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2071323} 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":"4934e760-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"626519d9-c541-44f7-a662-cc74db25d01e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2164762} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e7656622-49b4-4caa-8d95-c210a198cfbe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2167099} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? 200 30ms","method":"GET","requestID":"49349940-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec?"} 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":"4955a7a76199ac7b15743d1c85105636"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":17}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling 200 25ms","method":"POST","requestID":"49355c90-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? 200 31ms","method":"GET","requestID":"4934e760-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"15546991-7b96-4ac1-ade5-7358018515d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2353435} experiment-1 | {"level":"info","message":"POST /experiments? 201 183ms","method":"POST","requestID":"4955a7a76199ac7b15743d1c85105636","responseTime":183,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1295","request_time":"0.188","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4955a7a76199ac7b15743d1c85105636"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":542,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.856195,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"493a8cb0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"252c391a-e83a-454e-a169-c7d0a9bee604","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2382298} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":543,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.406323,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"493b5000-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 7ms","method":"GET","requestID":"fda6c5d0f7398357d15c96d1b5cde080","responseTime":7,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling 200 20ms","method":"POST","requestID":"493a8cb0-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling 200 16ms","method":"POST","requestID":"493b5000-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":544,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.765288,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"fda6c5d0f7398357d15c96d1b5cde080"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0d4c5a72-c2f4-439b-9d14-831e0c788977","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2542841} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":545,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.121238,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"493de810-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.367610290Z"}]},"request_id":"23d86de0-2a90-469f-96ab-7a3b3090dbd5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2589366} 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":"fda6c5d0f7398357d15c96d1b5cde080"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling 200 13ms","method":"POST","requestID":"493de810-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"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":"57b4f818-b4ea-47b4-a25e-4dedff8530f8"},{"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":"4077b5ac-38fc-46e3-be27-3ba1a752dd11"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bba5152b-a338-4324-9c66-70449e5dfd08"}]},"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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"},{"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fda6c5d0f7398357d15c96d1b5cde080"} device-1 | {"level":"info","message":"GET /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec? 200 16ms","method":"GET","requestID":"fda6c5d0f7398357d15c96d1b5cde080","responseTime":16,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec?"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e08348caa0125b5701b68ddd716c43c4","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":546,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.885368,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"49405910-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":547,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730064,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"e08348caa0125b5701b68ddd716c43c4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:42.420211325Z"}]},"request_id":"d18fcfce-2b9b-45bb-b757-04114fa96129","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2824507} 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":"e08348caa0125b5701b68ddd716c43c4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e216a3e1-92bb-4aac-8f82-0faa18a0e020","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.2870488} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e08348caa0125b5701b68ddd716c43c4"} device-1 | {"level":"info","message":"GET /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b? 200 19ms","method":"GET","requestID":"e08348caa0125b5701b68ddd716c43c4","responseTime":19,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"34c67331-1a13-4c6b-99e3-7e967476086f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.287893} 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":"49405910-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} 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/d89671f3-c280-47a0-acc2-464e52777b5d'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d'"} 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 55ms","method":"POST","requestID":"49405910-0657-11ef-8390-917b0c22016f","responseTime":55,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c52dc6fe-307f-469c-925e-3286b07a9860","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.3653524} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":548,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.823922,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"494ed800-0657-11ef-8390-917b0c22016f"},"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/d89671f3-c280-47a0-acc2-464e52777b5d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling 200 13ms","method":"POST","requestID":"494ed800-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b5ce28ed8ef2ff41c6e8181846c6f71b","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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"},{"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f64df2b0-1957-404a-a305-33e0c1b37dc3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.3814178} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":549,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.083345,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"b5ce28ed8ef2ff41c6e8181846c6f71b","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"b5ce28ed8ef2ff41c6e8181846c6f71b"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"49514900-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling 200 11ms","method":"POST","requestID":"49514900-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","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/d89671f3-c280-47a0-acc2-464e52777b5d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a894dca0a8be490838f5a0c496e46bb1","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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"},{"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd89671f3-c280-47a0-acc2-464e52777b5d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b918065-cefa-4c8a-92ae-12cdb8cd3ea1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.4301126} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":550,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.407317,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4958c310-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d 200 8ms","method":"GET","requestID":"4958c310-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 27ms","method":"POST","requestID":"a894dca0a8be490838f5a0c496e46bb1","responseTime":27,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.030","http_referrer":"","http_user_agent":"node-fetch","requestID":"a894dca0a8be490838f5a0c496e46bb1"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"41fb4a8f-b41f-4b61-ba6c-d70d97200367","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.4537623} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":551,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.141491,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"495c6c90-0657-11ef-8390-917b0c22016f"},"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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling 200 9ms","method":"POST","requestID":"495c6c90-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17dcbd6d-4191-4393-ab85-838c03defc06","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.465718} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":552,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.534082,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"495e1a40-0657-11ef-8390-917b0c22016f"},"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling 200 11ms","method":"POST","requestID":"495e1a40-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"287e57b9a0e18af33b5929a4a25f711c","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":553,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.244048,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"287e57b9a0e18af33b5929a4a25f711c"},"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/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea HTTP/1.1","status": "200","body_bytes_sent":"1368","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"287e57b9a0e18af33b5929a4a25f711c"} experiment-1 | {"level":"info","message":"GET /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea 200 16ms","method":"GET","requestID":"287e57b9a0e18af33b5929a4a25f711c","responseTime":16,"status":200,"url":"/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1d353681bac9b56429f2172046deb04c","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":554,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.313221,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"1d353681bac9b56429f2172046deb04c"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":555,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.286412,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"496cc040-0657-11ef-8390-917b0c22016f"},"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/d89671f3-c280-47a0-acc2-464e52777b5d' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd89671f3-c280-47a0-acc2-464e52777b5d': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fd89671f3-c280-47a0-acc2-464e52777b5d","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"48f2b9a8-54ad-4518-b2df-42461cdd5182","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.5841022} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ee9b32e5-5199-43c7-8975-021f9fdbad7c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.5845532} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fe1971a6644260b08b40dcd2f1dd4372","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"},{"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"}}},"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":"496cc040-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":11}} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c5d917a925b15a670396aad1adda35c6","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","driver":"device2","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","driver":"device2","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b"},{"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/285bb4b3-ba77-43ef-9504-2a8fe34f43ec"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"d89671f3-c280-47a0-acc2-464e52777b5d","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/d89671f3-c280-47a0-acc2-464e52777b5d 204 57ms","method":"DELETE","requestID":"496cc040-0657-11ef-8390-917b0c22016f","responseTime":57,"status":204,"url":"/peerconnections/d89671f3-c280-47a0-acc2-464e52777b5d"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fef66ef6e-8a0d-43cd-b4ff-492475069f6b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"374b6d18-c84f-4f49-8534-847a5a7880e5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.644865} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":556,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.544672,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"49791c50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling 200 16ms","method":"POST","requestID":"49791c50-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/ef66ef6e-8a0d-43cd-b4ff-492475069f6b/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"4fa331e2-250b-4361-91eb-3f92f974b3fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.6572428} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d8b62ac9-817e-47b2-8f15-3f685f2179ab","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.6576495} 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":"1d353681bac9b56429f2172046deb04c"},"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:45964","level":"info","msg":"Received request.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F285bb4b3-ba77-43ef-9504-2a8fe34f43ec","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c45c54ce-737c-4f44-973d-86d41af3348f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.6679163} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":557,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.739777,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"497c2990-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling 200 21ms","method":"POST","requestID":"497c2990-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1d353681bac9b56429f2172046deb04c"} experiment-1 | {"level":"info","message":"DELETE /experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea 204 189ms","method":"DELETE","requestID":"1d353681bac9b56429f2172046deb04c","responseTime":189,"status":204,"url":"/experiments/750ffd6b-b5f6-4c89-b12f-e77ffc7d4fea"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2572","request_time":"0.733","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"f1776a91c15bc2bc7573c38413f1f3b2"} gateway-1 | {"time_local":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2570","request_time":"0.759","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"151ba9624d58bbfbbc65dc7b4fe48e87"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"fe1971a6644260b08b40dcd2f1dd4372","responseTime":144,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.150","http_referrer":"","http_user_agent":"node-fetch","requestID":"fe1971a6644260b08b40dcd2f1dd4372"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f6b2b08547883697d2c43a45b14dab99","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 146ms","method":"POST","requestID":"c5d917a925b15a670396aad1adda35c6","responseTime":146,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"c5d917a925b15a670396aad1adda35c6"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/285bb4b3-ba77-43ef-9504-2a8fe34f43ec' closed"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":558,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.975514,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"f6b2b08547883697d2c43a45b14dab99"},"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/ef66ef6e-8a0d-43cd-b4ff-492475069f6b' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"0584273c-6089-4922-803b-b5e0d7235103","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.7605643} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6b2b08547883697d2c43a45b14dab99"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a2c5d197-9363-46ef-9c60-b3a129d3e430","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.7679086} 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":"f6b2b08547883697d2c43a45b14dab99"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"37de582e-9022-434c-97bd-563a4f9cc0ba","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.7814379} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c7d88ee7-a986-4cd8-a68a-fdec26298ad2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.7818003} 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":"f6b2b08547883697d2c43a45b14dab99"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.781403275Z"}]},"request_id":"206eb705-76d1-4cc9-b8d0-64d360c57b88","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.7868636} 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":"f6b2b08547883697d2c43a45b14dab99"},"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":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.059","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6b2b08547883697d2c43a45b14dab99"} device-1 | {"level":"info","message":"POST /devices? 201 51ms","method":"POST","requestID":"f6b2b08547883697d2c43a45b14dab99","responseTime":51,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a233f6fe2be78e740d13de833a708d82","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":559,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.928307,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:43Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415743,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0M30.ZfGZ4P5YxPBQcGtHPl7OpkyjCOqgCgHIcvzyhTUvevc"} 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":"a233f6fe2be78e740d13de833a708d82"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3c34f8bb-2a22-49cc-a01c-8f40295a1de9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.814284} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a233f6fe2be78e740d13de833a708d82"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1e55b2b9-78cc-48db-b532-b6f67156da8a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.8194916} 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":"a233f6fe2be78e740d13de833a708d82"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f7c1f869-6213-4933-b8b1-390e673bb411","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.8298087} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"920a9254-fd43-4556-83bb-75fdf7978c5b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.8299208} 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":"a233f6fe2be78e740d13de833a708d82"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.829775542Z"}]},"request_id":"2a1120b8-23d1-44af-a4ec-42a0d9a94a81","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415743.8350325} 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":"a233f6fe2be78e740d13de833a708d82"},"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":"29/Apr/2024:18:35:43 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a233f6fe2be78e740d13de833a708d82"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"a233f6fe2be78e740d13de833a708d82","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bcb9424735c6ebf9e3faf080be9d3a62","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/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":"bcb9424735c6ebf9e3faf080be9d3a62"} device-1 | {"level":"info","message":"OPTIONS /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/websocket 200 1ms","method":"OPTIONS","requestID":"bcb9424735c6ebf9e3faf080be9d3a62","responseTime":1,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/websocket"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"52e7402769aae9771466be955acbeb64","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/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":"52e7402769aae9771466be955acbeb64"} device-1 | {"level":"info","message":"OPTIONS /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/websocket 200 1ms","method":"OPTIONS","requestID":"52e7402769aae9771466be955acbeb64","responseTime":1,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 8ms","method":"GET","requestID":"95192a0d3a671e77fcb7d53f2a4e8da6","responseTime":8,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:45Z"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"68a7d25d230da54b6153ebb6d1644b45","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":560,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.300885,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:45Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"95192a0d3a671e77fcb7d53f2a4e8da6"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":561,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.732957,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"68a7d25d230da54b6153ebb6d1644b45"},"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":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.048","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"68a7d25d230da54b6153ebb6d1644b45"} device-1 | {"level":"info","message":"POST /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/websocket 200 41ms","method":"POST","requestID":"68a7d25d230da54b6153ebb6d1644b45","responseTime":41,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.058","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"95192a0d3a671e77fcb7d53f2a4e8da6"} device-1 | {"level":"info","message":"POST /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/websocket 200 49ms","method":"POST","requestID":"95192a0d3a671e77fcb7d53f2a4e8da6","responseTime":49,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"e61fd4bbe70e5d552fd484337c839305","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":562,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.21054,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"e61fd4bbe70e5d552fd484337c839305"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.781403275Z"}]},"request_id":"98d40276-0846-4ac3-9793-767ba8185bd0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415745.901256} 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":"e61fd4bbe70e5d552fd484337c839305"},"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":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 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":"e61fd4bbe70e5d552fd484337c839305"} device-1 | {"level":"info","message":"GET /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 200 18ms","method":"GET","requestID":"e61fd4bbe70e5d552fd484337c839305","responseTime":18,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c3c021f9c1fd81dac406cf83325e736f","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":563,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.713138,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"c3c021f9c1fd81dac406cf83325e736f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.829775542Z"}]},"request_id":"f17e26b7-1808-4ffb-867e-392e3a8e89f7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415745.9276237} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c3c021f9c1fd81dac406cf83325e736f"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 200 19ms","method":"GET","requestID":"c3c021f9c1fd81dac406cf83325e736f","responseTime":19,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:45 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 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":"c3c021f9c1fd81dac406cf83325e736f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f67e1e2d6c56d666ef64beeceee1d59b","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:45964","level":"info","msg":"Received request.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":564,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.2605,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:45Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"f67e1e2d6c56d666ef64beeceee1d59b"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"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:45964","level":"info","msg":"Received request.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":565,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.124543,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"4ae22230-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":566,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.863623,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"4ae27050-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.781403275Z"}]},"request_id":"f130007b-76df-4228-9b1e-442b9b320d8e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.0178401} 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":"4ae22230-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.829775542Z"}]},"request_id":"937deef3-49f4-4dba-9602-37935b4c0608","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.0198128} 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":"4ae27050-0657-11ef-8390-917b0c22016f"},"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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 200 26ms","method":"GET","requestID":"4ae22230-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 200 26ms","method":"GET","requestID":"4ae27050-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"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:45964","level":"info","msg":"Received request.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":567,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.818548,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"4aef1a80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":568,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.475759,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"4aef68a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":569,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.749078,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.781403275Z"}]},"request_id":"fd3ee555-5b88-4396-9450-b71a799295c2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1044788} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"56883b45-5d3b-46b0-bc13-df9f76c5ae6b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1046238} 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":"4aef1a80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4aefb6c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.829775542Z"}]},"request_id":"8860bcea-1118-468a-a032-47ba0724a4af","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.106007} 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":"4aef68a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 200 26ms","method":"GET","requestID":"4aef1a80-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0fea585a-3bff-4cab-b375-7700c4aecacb#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0fea585a-3bff-4cab-b375-7700c4aecacb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a4448946-4347-4cd4-926c-9781c92054bb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1154945} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"88662b6d-ca77-4b8a-8940-dcae71a8092a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1157973} 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":"f67e1e2d6c56d666ef64beeceee1d59b"},"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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling 200 28ms","method":"POST","requestID":"4aefb6c0-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 200 31ms","method":"GET","requestID":"4aef68a0-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2bf6c296-bce7-4e13-8d5d-d11691462cb2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1300323} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.194","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f67e1e2d6c56d666ef64beeceee1d59b"} experiment-1 | {"level":"info","message":"POST /experiments? 201 188ms","method":"POST","requestID":"f67e1e2d6c56d666ef64beeceee1d59b","responseTime":188,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":570,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.697416,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4af471b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"498a8867-6d8b-461e-8405-0853c6e350a4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.133822} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f22f3050b7b1549992f3dbf3f775d1b7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":571,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.783563,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} device-1 | {"level":"info","message":"POST /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling 200 15ms","method":"POST","requestID":"4af471b0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4af4e6e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":572,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.986662,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"f22f3050b7b1549992f3dbf3f775d1b7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"POST /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling 200 18ms","method":"POST","requestID":"4af4e6e0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.781403275Z"}]},"request_id":"2ad186e0-0810-4df6-8ca2-e79b2ce465fa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1477706} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f22f3050b7b1549992f3dbf3f775d1b7"},"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:45964","level":"info","msg":"Received request.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4c1710ed-b488-4286-a360-50a3188109ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1505466} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":573,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.467749,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 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":"f22f3050b7b1549992f3dbf3f775d1b7"} device-1 | {"level":"info","message":"GET /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7? 200 13ms","method":"GET","requestID":"f22f3050b7b1549992f3dbf3f775d1b7","responseTime":13,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4af7f420-0657-11ef-8390-917b0c22016f"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling 200 10ms","method":"POST","requestID":"4af7f420-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"f09e8f49235427a6b35ab86a077a193e","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"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":"a1085f4a-bf65-4a2e-9e2b-1498f8c32c45"},{"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":"9944478c-3efa-49d0-93df-3d18492b54e5"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e45c1147-2a85-4024-8a83-a388ea461b51"}]},"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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7"},{"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c"}],"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:45964","level":"info","msg":"Received request.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":574,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.80573,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"f09e8f49235427a6b35ab86a077a193e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":575,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.711696,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415745,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0NX0.evZprn3iMRpGUW_RgyJiNM8-yvTRuv2fwWI9GU59BFU"} 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":"4afa1700-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:43.829775542Z"}]},"request_id":"886641f3-29f3-4cd5-a532-ef740bf24be9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.168809} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f09e8f49235427a6b35ab86a077a193e"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 200 17ms","method":"GET","requestID":"f09e8f49235427a6b35ab86a077a193e","responseTime":17,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c? 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":"f09e8f49235427a6b35ab86a077a193e"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0569c235-ae6d-47e7-95f9-43c17bca6bb1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1776917} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"674dee06-829d-4f8a-85c1-a1b92f7dfe5c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.1778817} 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":"4afa1700-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/e84f9d11-2133-4065-bbfe-e5eea3168b52'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 40ms","method":"POST","requestID":"4afa1700-0657-11ef-8390-917b0c22016f","responseTime":40,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"87791b7e-82f8-49c5-b21a-a7cc8524fcc9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.2304776} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":576,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.111508,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b042920-0657-11ef-8390-917b0c22016f"},"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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling 200 8ms","method":"POST","requestID":"4b042920-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2c4fda90-6a10-4120-b020-3aec1b87820f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.2413967} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":577,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.526159,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b05afc0-0657-11ef-8390-917b0c22016f"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling 200 10ms","method":"POST","requestID":"4b05afc0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f60ed572e66acd43fe88fd92440b2713","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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7"},{"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"f60ed572e66acd43fe88fd92440b2713","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"f60ed572e66acd43fe88fd92440b2713"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","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/e84f9d11-2133-4065-bbfe-e5eea3168b52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"10788fb1ebe425f3be897a0dc0e5bc08","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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7"},{"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe84f9d11-2133-4065-bbfe-e5eea3168b52","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ebfe3e78-03d3-4c88-ab46-279bde1b5895","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.4739516} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":578,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.761102,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52","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":"4b291640-0657-11ef-8390-917b0c22016f"},"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/e84f9d11-2133-4065-bbfe-e5eea3168b52 200 14ms","method":"GET","requestID":"4b291640-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 42ms","method":"POST","requestID":"10788fb1ebe425f3be897a0dc0e5bc08","responseTime":42,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.046","http_referrer":"","http_user_agent":"node-fetch","requestID":"10788fb1ebe425f3be897a0dc0e5bc08"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"544ed7ee-e9bb-4e83-8c51-e1b703947749","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.5093782} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":579,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.296514,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b2e6d70-0657-11ef-8390-917b0c22016f"},"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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling 200 13ms","method":"POST","requestID":"4b2e6d70-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"65df1248-0722-4615-9f87-1ab6e4457dbc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.5244892} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":580,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.249819,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b30b760-0657-11ef-8390-917b0c22016f"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling 200 14ms","method":"POST","requestID":"4b30b760-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"5ca672c8f8ed63655b5de872da706a04","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":581,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.275459,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"5ca672c8f8ed63655b5de872da706a04"},"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/0fea585a-3bff-4cab-b375-7700c4aecacb"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"5ca672c8f8ed63655b5de872da706a04"} experiment-1 | {"level":"info","message":"GET /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb 200 18ms","method":"GET","requestID":"5ca672c8f8ed63655b5de872da706a04","responseTime":18,"status":200,"url":"/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"9e626f22e0c58ad5b5e302a1ec0bac34","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":582,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.236541,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"9e626f22e0c58ad5b5e302a1ec0bac34"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":583,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.279003,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"4b3e7300-0657-11ef-8390-917b0c22016f"},"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/e84f9d11-2133-4065-bbfe-e5eea3168b52' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe84f9d11-2133-4065-bbfe-e5eea3168b52': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fe84f9d11-2133-4065-bbfe-e5eea3168b52","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"c785375b-d3b5-41d6-a8b2-4a413ccd502a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.635066} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"41b7a8ba0c9e9377da99d20ed577acf6","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f580b241-7992-4f0f-a4ca-9861645e1064","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.635869} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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":"4b3e7300-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":12}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a490d0f3924998821d5ca0491108558a","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":"closed","url":"http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7"},{"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"}}},"level":"info","message":"received a callback"} 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/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7"},{"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"e84f9d11-2133-4065-bbfe-e5eea3168b52","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/e84f9d11-2133-4065-bbfe-e5eea3168b52 204 54ms","method":"DELETE","requestID":"4b3e7300-0657-11ef-8390-917b0c22016f","responseTime":54,"status":204,"url":"/peerconnections/e84f9d11-2133-4065-bbfe-e5eea3168b52"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e06636d7-de48-4bb9-aca0-22ba01186d06","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.6972535} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":584,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.766437,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b4acf10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling 200 17ms","method":"POST","requestID":"4b4acf10-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0fea585a-3bff-4cab-b375-7700c4aecacb': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F0fea585a-3bff-4cab-b375-7700c4aecacb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"e8403113-a6d3-4f8b-b945-b0b018d9ae8e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.7077932} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"adb856ea-3334-423d-b501-ba982faaaf72","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.7080827} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9e626f22e0c58ad5b5e302a1ec0bac34"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ff1f9adc1-9c06-49b1-ac39-5e69efbd583c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"42795d6f-8619-4030-bf46-ccd24d8bb8b6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.7137814} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":585,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.533379,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4b4db540-0657-11ef-8390-917b0c22016f"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling 200 10ms","method":"POST","requestID":"4b4db540-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/f1f9adc1-9c06-49b1-ac39-5e69efbd583c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb 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":"9e626f22e0c58ad5b5e302a1ec0bac34"} experiment-1 | {"level":"info","message":"DELETE /experiments/0fea585a-3bff-4cab-b375-7700c4aecacb 204 172ms","method":"DELETE","requestID":"9e626f22e0c58ad5b5e302a1ec0bac34","responseTime":172,"status":204,"url":"/experiments/0fea585a-3bff-4cab-b375-7700c4aecacb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 127ms","method":"POST","requestID":"41b7a8ba0c9e9377da99d20ed577acf6","responseTime":127,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.133","http_referrer":"","http_user_agent":"node-fetch","requestID":"41b7a8ba0c9e9377da99d20ed577acf6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 126ms","method":"POST","requestID":"a490d0f3924998821d5ca0491108558a","responseTime":126,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.134","http_referrer":"","http_user_agent":"node-fetch","requestID":"a490d0f3924998821d5ca0491108558a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4160abc1344ddf97dad34f8addf5af37","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2263","request_time":"0.914","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"6a4d514927e416fce1267150fc4f3cbe"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":586,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.098593,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2400","request_time":"0.917","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"514cd9597c972668dafa7222417f35a0"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"4160abc1344ddf97dad34f8addf5af37"},"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/f1f9adc1-9c06-49b1-ac39-5e69efbd583c' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/29603ef4-bbbc-4b54-8dd6-cb4e0c6ca3a7' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"1e671c85-0f09-4d88-8f49-33c03970f081","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.7905357} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4160abc1344ddf97dad34f8addf5af37"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b13a8db5-f382-460f-96c1-be2c35fb239d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.7951577} 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":"4160abc1344ddf97dad34f8addf5af37"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a255ddf2-02bc-4e17-97ad-4f6d8246ba89","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8039055} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0868d615-986f-42a2-9c17-47ee1cd70901","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8039646} 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":"4160abc1344ddf97dad34f8addf5af37"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.803879458Z"}]},"request_id":"d21638bc-ae67-460b-9248-f9ec2e39eb53","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8085485} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4160abc1344ddf97dad34f8addf5af37"},"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 39ms","method":"POST","requestID":"4160abc1344ddf97dad34f8addf5af37","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.045","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4160abc1344ddf97dad34f8addf5af37"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"497040cbfe5cc4712778efef0c3befc4","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":587,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.708891,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:46Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415746,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0Nn0.mg2Pvg7NpWLEcPkMmTNYD7lmV271D1soi7jGlP4pf7g"} 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":"497040cbfe5cc4712778efef0c3befc4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"34f7614f-33eb-4b3f-bc11-9917c36b1e01","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.831304} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"497040cbfe5cc4712778efef0c3befc4"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92f210a8-9d21-4602-928c-043dec7494f3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8355956} 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":"497040cbfe5cc4712778efef0c3befc4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"c1c097bf-022e-4f0e-950a-7a3dd04d8426","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8469605} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e0e408fa-a20e-41b0-921b-3dba4a8daee8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8470812} 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":"497040cbfe5cc4712778efef0c3befc4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.846930684Z"}]},"request_id":"41d995bb-7239-4799-be7a-d27a7095438f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415746.8508677} 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":"497040cbfe5cc4712778efef0c3befc4"},"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":"29/Apr/2024:18:35:46 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"497040cbfe5cc4712778efef0c3befc4"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"497040cbfe5cc4712778efef0c3befc4","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"01e89ea2b5cd67b49f1cc760a6ad8c34","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/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":"01e89ea2b5cd67b49f1cc760a6ad8c34"} device-1 | {"level":"info","message":"OPTIONS /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/websocket 200 1ms","method":"OPTIONS","requestID":"01e89ea2b5cd67b49f1cc760a6ad8c34","responseTime":1,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"02dd972f80bc7541388c6cd2d5fb3536","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":588,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.388119,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"02dd972f80bc7541388c6cd2d5fb3536"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"3abb74beee604da7362a436fc6c69d2b","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/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":"3abb74beee604da7362a436fc6c69d2b"} device-1 | {"level":"info","message":"OPTIONS /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/websocket 200 1ms","method":"OPTIONS","requestID":"3abb74beee604da7362a436fc6c69d2b","responseTime":1,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f06ae3ec76735c3e4f9b63393aecc1cc","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":589,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.395579,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"f06ae3ec76735c3e4f9b63393aecc1cc"},"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":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.049","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"02dd972f80bc7541388c6cd2d5fb3536"} device-1 | {"level":"info","message":"POST /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/websocket 200 43ms","method":"POST","requestID":"02dd972f80bc7541388c6cd2d5fb3536","responseTime":43,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/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":"f06ae3ec76735c3e4f9b63393aecc1cc"} device-1 | {"level":"info","message":"POST /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/websocket 200 31ms","method":"POST","requestID":"f06ae3ec76735c3e4f9b63393aecc1cc","responseTime":31,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"52948167b3a30a6e69f506024afb0377","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":590,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.162306,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"52948167b3a30a6e69f506024afb0377"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.803879458Z"}]},"request_id":"aabaf6ba-9638-4e6b-8d85-8c53056a7936","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415748.848273} 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":"52948167b3a30a6e69f506024afb0377"},"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":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 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":"52948167b3a30a6e69f506024afb0377"} device-1 | {"level":"info","message":"GET /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 200 19ms","method":"GET","requestID":"52948167b3a30a6e69f506024afb0377","responseTime":19,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"355e081c37cd4aca3ff91824ca07f61f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":591,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.262837,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"355e081c37cd4aca3ff91824ca07f61f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.846930684Z"}]},"request_id":"95330432-3ebf-4e77-b633-84ec5ac8bbcd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415748.8751078} 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":"355e081c37cd4aca3ff91824ca07f61f"},"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":"29/Apr/2024:18:35:48 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 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":"355e081c37cd4aca3ff91824ca07f61f"} device-1 | {"level":"info","message":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 200 18ms","method":"GET","requestID":"355e081c37cd4aca3ff91824ca07f61f","responseTime":18,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"92dad575062a3dd127d355f3a1479823","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:45964","level":"info","msg":"Received request.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":592,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.145186,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"92dad575062a3dd127d355f3a1479823"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"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:45964","level":"info","msg":"Received request.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":593,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.210943,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"4ca35a30-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":594,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.693664,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:48Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"4ca38140-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.803879458Z"}]},"request_id":"c2f3f4af-b044-4c6b-bcbb-0eb20445b03b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415748.9586442} 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":"4ca35a30-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.846930684Z"}]},"request_id":"b05da3d8-8e3c-4a83-a941-311fb2d2100d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415748.9606235} 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":"4ca38140-0657-11ef-8390-917b0c22016f"},"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 200 21ms","method":"GET","requestID":"4ca35a30-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 200 21ms","method":"GET","requestID":"4ca38140-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":595,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.07645,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"4cae7dc0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":596,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.449035,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"4caecbe0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b75910b-adf0-4483-8f7f-9c87d00722f2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0320468} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":597,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.194394,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4caef2f0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.803879458Z"}]},"request_id":"94df27b8-3dd2-4155-b1c9-914eb9b7be5e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.036026} 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":"4cae7dc0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.846930684Z"}]},"request_id":"100a9252-5010-44e1-adf0-91244a24bc4c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0399497} 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":"4caecbe0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling 200 23ms","method":"POST","requestID":"4caef2f0-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60132aeb-e107-4231-a63e-7aa8178e47b0#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60132aeb-e107-4231-a63e-7aa8178e47b0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f199ecc0-d138-4a09-8a8c-1c6c9e219cd0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.049479} device-1 | {"level":"info","message":"GET /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 200 30ms","method":"GET","requestID":"4cae7dc0-0657-11ef-8390-917b0c22016f","responseTime":30,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d?"} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8385c6f0-fcd4-40af-b080-6ff295f56abc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0501053} 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":"92dad575062a3dd127d355f3a1479823"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":23}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 200 31ms","method":"GET","requestID":"4caecbe0-0657-11ef-8390-917b0c22016f","responseTime":31,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bde2c410-c612-4395-bb58-2c9ceb70baaf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0574481} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":598,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.12296,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cb338b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1211","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"92dad575062a3dd127d355f3a1479823"} device-1 | {"level":"info","message":"POST /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling 200 15ms","method":"POST","requestID":"4cb338b0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling"} experiment-1 | {"level":"info","message":"POST /experiments? 201 175ms","method":"POST","requestID":"92dad575062a3dd127d355f3a1479823","responseTime":175,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"50ec56b2-fb7d-437c-a5fb-9d7e40624429","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0656154} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":599,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.460269,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cb47130-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"99728d12cea86a8642871aca4e8c2a24","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling 200 13ms","method":"POST","requestID":"4cb47130-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":600,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.951604,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"99728d12cea86a8642871aca4e8c2a24"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"27dfa00d-8549-4836-959c-5791727a0918","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.078825} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":601,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.831386,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cb6bb20-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.803879458Z"}]},"request_id":"81a87142-b26d-4110-8f4e-3b7bfd1cb3d0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.0822248} 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":"99728d12cea86a8642871aca4e8c2a24"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling 200 14ms","method":"POST","requestID":"4cb6bb20-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 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":"99728d12cea86a8642871aca4e8c2a24"} device-1 | {"level":"info","message":"GET /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d? 200 16ms","method":"GET","requestID":"99728d12cea86a8642871aca4e8c2a24","responseTime":16,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"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":"aa429fc2-2f5c-4570-942e-3f1767747446"},{"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":"f9ec2872-e1e3-4845-b598-7b9639cfc7a9"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"a0dc55a9-677e-499b-bdcc-6b964da988d9"}]},"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/7c9e0f34-3526-474e-a969-63e4deee97c8"},{"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"002dd1ce7c5a2fcbba0cdbfb26af489e","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":602,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.906889,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415748,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OH0.8QpMkjiQ8rOzlHH567s38tubio4Tv8ZC3TClA7GfrWg"} 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":"4cb95330-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":603,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.718904,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"002dd1ce7c5a2fcbba0cdbfb26af489e"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:46.846930684Z"}]},"request_id":"a32f23b8-3cd3-42be-aa45-a643718956b7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.1034863} 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":"002dd1ce7c5a2fcbba0cdbfb26af489e"},"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":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 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":"002dd1ce7c5a2fcbba0cdbfb26af489e"} device-1 | {"level":"info","message":"GET /devices/7c9e0f34-3526-474e-a969-63e4deee97c8? 200 12ms","method":"GET","requestID":"002dd1ce7c5a2fcbba0cdbfb26af489e","responseTime":12,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"d4b3d5d5-d9d3-499b-8a2c-599d745dd62d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.1063368} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"836569ce-f55e-4f14-8756-4a2f18aedffd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.1076627} 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":"4cb95330-0657-11ef-8390-917b0c22016f"},"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/35169fbe-e583-4ca1-a89b-4fd3fb5ac623'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 45ms","method":"POST","requestID":"4cb95330-0657-11ef-8390-917b0c22016f","responseTime":45,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"98d1c3c8-31be-4a54-b4fa-cf612da1e2b0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.1700668} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":604,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.323663,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cc4c4e0-0657-11ef-8390-917b0c22016f"},"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling 200 9ms","method":"POST","requestID":"4cc4c4e0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"77458516-9d17-4c0d-a6c5-19e2532cc196","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.181886} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":605,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.934099,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cc67290-0657-11ef-8390-917b0c22016f"},"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/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling 200 10ms","method":"POST","requestID":"4cc67290-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35169fbe-e583-4ca1-a89b-4fd3fb5ac623","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f84d99b1adbb649b3ef275b44a1fda5d","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/7c9e0f34-3526-474e-a969-63e4deee97c8"},{"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 8ms","method":"POST","requestID":"f84d99b1adbb649b3ef275b44a1fda5d","responseTime":8,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"f84d99b1adbb649b3ef275b44a1fda5d"} device-1 | {"data":{"peerconnection":"35169fbe-e583-4ca1-a89b-4fd3fb5ac623","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"35169fbe-e583-4ca1-a89b-4fd3fb5ac623","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/35169fbe-e583-4ca1-a89b-4fd3fb5ac623' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35169fbe-e583-4ca1-a89b-4fd3fb5ac623","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"9a6c3768138f0a2d88c74508da92a239","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/7c9e0f34-3526-474e-a969-63e4deee97c8"},{"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35169fbe-e583-4ca1-a89b-4fd3fb5ac623","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ab00e18b-dde0-4f5d-8d13-b19800e7b668","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.428499} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":606,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.426154,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623","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":"4cebfbf0-0657-11ef-8390-917b0c22016f"},"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/35169fbe-e583-4ca1-a89b-4fd3fb5ac623 200 10ms","method":"GET","requestID":"4cebfbf0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"9a6c3768138f0a2d88c74508da92a239","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"9a6c3768138f0a2d88c74508da92a239"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"31534e66-a205-4698-b255-6795b21160fa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.4535813} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":607,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.13897,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4ceff390-0657-11ef-8390-917b0c22016f"},"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/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling 200 9ms","method":"POST","requestID":"4ceff390-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"48b3cf6d-39cf-4fad-8f50-699e15d0d1b7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.46506} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":608,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.315311,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4cf1a140-0657-11ef-8390-917b0c22016f"},"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling 200 9ms","method":"POST","requestID":"4cf1a140-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"55cdb0cedf10b39b42acdd9fccbdac09","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":609,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.528926,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} authorization-1 | {"level":"info","message":"POST /authorize 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"452","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"55cdb0cedf10b39b42acdd9fccbdac09"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"level":"info","message":"Successfully handled GET request on endpoint /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} experiment-1 | {"level":"info","message":"GET /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0 200 11ms","method":"GET","requestID":"55cdb0cedf10b39b42acdd9fccbdac09","responseTime":11,"status":200,"url":"/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0 HTTP/1.1","status": "200","body_bytes_sent":"1284","request_time":"0.016","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"55cdb0cedf10b39b42acdd9fccbdac09"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9aefdbcd9b145f338d13a96cbf2a3552","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":610,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.757133,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"9aefdbcd9b145f338d13a96cbf2a3552"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":611,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.978201,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"4cffab00-0657-11ef-8390-917b0c22016f"},"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/35169fbe-e583-4ca1-a89b-4fd3fb5ac623' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"35169fbe-e583-4ca1-a89b-4fd3fb5ac623","statusDeviceA":"connected","statusDeviceB":"closed"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35169fbe-e583-4ca1-a89b-4fd3fb5ac623': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F35169fbe-e583-4ca1-a89b-4fd3fb5ac623","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"ce862817-f8fe-43d6-aa47-94cc028a7d13","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.5725555} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bacbea4c-7443-4402-8596-e5d413618699","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.572958} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c5669044376936aebf6eac17835da51d","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/7c9e0f34-3526-474e-a969-63e4deee97c8"},{"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"1ef0631ed10ee7b4b13961ad2bd8fa4b","responseTime":1,"status":200,"url":"/auth"} 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":"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":"4cffab00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} 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/7c9e0f34-3526-474e-a969-63e4deee97c8"},{"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623 204 27ms","method":"DELETE","requestID":"4cffab00-0657-11ef-8390-917b0c22016f","responseTime":27,"status":204,"url":"/peerconnections/35169fbe-e583-4ca1-a89b-4fd3fb5ac623"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"},"level":"info","message":"Successfully finished experiment"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8'"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F7c9e0f34-3526-474e-a969-63e4deee97c8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a942f297-73eb-443c-a7f5-88db627b2f96","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.6147177} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":612,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.427299,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d083680-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling 200 14ms","method":"POST","requestID":"4d083680-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/7c9e0f34-3526-474e-a969-63e4deee97c8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60132aeb-e107-4231-a63e-7aa8178e47b0': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F60132aeb-e107-4231-a63e-7aa8178e47b0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"15c7d1c1-41ff-441f-bef0-2aacf3c34ce8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.6302752} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f86a50ee-9b77-4595-b3bc-673bfc5bda9c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.6305726} 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":"9aefdbcd9b145f338d13a96cbf2a3552"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fb62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bca816aa-eb64-4a46-b83e-1dc944b8ec3e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.6337643} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":613,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.593122,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4d0af5a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling 200 18ms","method":"POST","requestID":"4d0af5a0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.156","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9aefdbcd9b145f338d13a96cbf2a3552"} experiment-1 | {"level":"info","message":"DELETE /experiments/60132aeb-e107-4231-a63e-7aa8178e47b0 204 154ms","method":"DELETE","requestID":"9aefdbcd9b145f338d13a96cbf2a3552","responseTime":154,"status":204,"url":"/experiments/60132aeb-e107-4231-a63e-7aa8178e47b0"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 119ms","method":"POST","requestID":"c5669044376936aebf6eac17835da51d","responseTime":119,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.122","http_referrer":"","http_user_agent":"node-fetch","requestID":"c5669044376936aebf6eac17835da51d"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 118ms","method":"POST","requestID":"1ef0631ed10ee7b4b13961ad2bd8fa4b","responseTime":118,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.123","http_referrer":"","http_user_agent":"node-fetch","requestID":"1ef0631ed10ee7b4b13961ad2bd8fa4b"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2263","request_time":"0.897","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"8acd1f1d72dfc93e401dcf33fdd71769"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 10ms","method":"GET","requestID":"33a8ad306e23d30a11a4dcb90d3f05cd","responseTime":10,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2397","request_time":"0.893","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"2fdff1ffa0748b14f0830be0813b6bf9"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":614,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.790332,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"33a8ad306e23d30a11a4dcb90d3f05cd"},"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/b62017cc-f97c-4a5f-bf2d-3bfa2c4a974d' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"55710971-c85e-45b7-acaa-b84d02c6f22a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7260997} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"33a8ad306e23d30a11a4dcb90d3f05cd"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"dba5887a-1226-4593-ac1f-207a0cc545fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.730939} 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":"33a8ad306e23d30a11a4dcb90d3f05cd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/7c9e0f34-3526-474e-a969-63e4deee97c8' closed"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"637924d1-2111-46e8-b293-33c9ebdd795d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7415822} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d4ca076c-7bf6-4a8a-915f-830727847bc9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.741723} 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":"33a8ad306e23d30a11a4dcb90d3f05cd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.741560634Z"}]},"request_id":"d57bbaa3-a7c8-4d29-9a58-6e9191c99d33","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7461023} 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":"33a8ad306e23d30a11a4dcb90d3f05cd"},"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":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.056","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"33a8ad306e23d30a11a4dcb90d3f05cd"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"33a8ad306e23d30a11a4dcb90d3f05cd","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"e806831d57e83af35a079c9c422d6952","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":615,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.776091,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:49Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415749,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc0OX0.n6uGVml5HrF4o7vkUypELGXTEZmuX5BKO24pWv_3C7A"} 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":"e806831d57e83af35a079c9c422d6952"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"34da1692-f6b8-4e7e-97a6-e664ff395fea","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7700267} 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":"e806831d57e83af35a079c9c422d6952"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b28117ce-fd3c-4aab-b196-272782eea8ff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.77537} 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":"e806831d57e83af35a079c9c422d6952"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"257e50f7-058a-4eac-8131-4a44ff1f365e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7859743} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6a3723d-5323-441a-847a-05d5e4bc6dd5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.786274} 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":"e806831d57e83af35a079c9c422d6952"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"23f67b55-8e5f-4848-807e-42c9bd964598","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415749.7903447} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e806831d57e83af35a079c9c422d6952"},"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 39ms","method":"POST","requestID":"e806831d57e83af35a079c9c422d6952","responseTime":39,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:49 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e806831d57e83af35a079c9c422d6952"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MH0.o_5CarLYXmpNUM7NpiIqIXDp9Pxvd8sMkTLeD4KUpSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"144c0bd81cf6cdd3bc126af0ad3111fb","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:50Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":616,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.342357,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415750,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MH0.o_5CarLYXmpNUM7NpiIqIXDp9Pxvd8sMkTLeD4KUpSI"} 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":"144c0bd81cf6cdd3bc126af0ad3111fb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"90c532c0-f85e-4f54-bb5e-537482ae77de","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415750.2864592} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"144c0bd81cf6cdd3bc126af0ad3111fb"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f0b27eee-86ad-41fd-909a-aae6a0bf25ca","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415750.2942066} 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":"144c0bd81cf6cdd3bc126af0ad3111fb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"7364afd2-699c-4dbe-8c79-cbd5ff38fbaf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415750.317835} 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":"144c0bd81cf6cdd3bc126af0ad3111fb"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b 200 51ms","method":"PATCH","requestID":"144c0bd81cf6cdd3bc126af0ad3111fb","responseTime":51,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"} gateway-1 | {"time_local":"29/Apr/2024:18:35:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.055","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"144c0bd81cf6cdd3bc126af0ad3111fb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MH0.o_5CarLYXmpNUM7NpiIqIXDp9Pxvd8sMkTLeD4KUpSI","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3d9a054adb878ca14c343ecca1c5aa4a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:50Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":617,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.097525,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:50Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415750,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MH0.o_5CarLYXmpNUM7NpiIqIXDp9Pxvd8sMkTLeD4KUpSI"} 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":"3d9a054adb878ca14c343ecca1c5aa4a"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/websocket 200 21ms","method":"POST","requestID":"3d9a054adb878ca14c343ecca1c5aa4a","responseTime":21,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:50 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3d9a054adb878ca14c343ecca1c5aa4a"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"fe494f574cc7185b15e591e29dc2139d","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/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":"fe494f574cc7185b15e591e29dc2139d"} device-1 | {"level":"info","message":"OPTIONS /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/websocket 200 1ms","method":"OPTIONS","requestID":"fe494f574cc7185b15e591e29dc2139d","responseTime":1,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"3f352115502334e8f3b8464ed66d9e5b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":618,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.236028,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"3f352115502334e8f3b8464ed66d9e5b"},"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":"29/Apr/2024:18:35:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/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":"3f352115502334e8f3b8464ed66d9e5b"} device-1 | {"level":"info","message":"POST /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/websocket 200 28ms","method":"POST","requestID":"3f352115502334e8f3b8464ed66d9e5b","responseTime":28,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"ba8909c1803508f159e084c3dc46a047","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":619,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.706368,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"ba8909c1803508f159e084c3dc46a047"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.741560634Z"}]},"request_id":"8f093c33-a37c-43c6-baea-4902f6c6af22","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415751.8452249} 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":"ba8909c1803508f159e084c3dc46a047"},"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":"29/Apr/2024:18:35:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 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":"ba8909c1803508f159e084c3dc46a047"} device-1 | {"level":"info","message":"GET /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 200 19ms","method":"GET","requestID":"ba8909c1803508f159e084c3dc46a047","responseTime":20,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fb3b226cc0ec80317aeb0e3d36b98caa","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":620,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.377481,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"fb3b226cc0ec80317aeb0e3d36b98caa"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"4dd2eac9-1bf1-4628-8765-a51164d62ea7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415751.8719802} 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":"fb3b226cc0ec80317aeb0e3d36b98caa"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? 200 21ms","method":"GET","requestID":"fb3b226cc0ec80317aeb0e3d36b98caa","responseTime":21,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:51 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fb3b226cc0ec80317aeb0e3d36b98caa"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e3486dd13d10ec7febfb907e7b73bde9","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:45964","level":"info","msg":"Received request.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":621,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":2.07367,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"e3486dd13d10ec7febfb907e7b73bde9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"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:45964","level":"info","msg":"Received request.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":622,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.753278,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"4e6bbe20-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":623,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.629618,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:51Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"4e6be530-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.741560634Z"}]},"request_id":"4e27a38c-a7b3-4efa-adfb-82cfb25b85d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415751.9449835} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e6bbe20-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"c9416239-b72e-44ce-8027-c19098b33043","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415751.9458575} 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":"4e6be530-0657-11ef-8390-917b0c22016f"},"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 200 12ms","method":"GET","requestID":"4e6bbe20-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? 200 12ms","method":"GET","requestID":"4e6be530-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":624,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.98267,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"4e758220-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":625,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.740232,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} 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":"4e75d040-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47d601c9-2a1f-4513-899b-153b2b210cf5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0115302} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":626,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.936312,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e75f750-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.741560634Z"}]},"request_id":"a352b5fe-2c8e-478e-bfa5-bc95dd8c8c08","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0139475} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"b0c2d2ed-36e4-4408-85f1-955e30df68d3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0157213} 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":"4e758220-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e75d040-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling 200 17ms","method":"POST","requestID":"4e75f750-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 200 20ms","method":"GET","requestID":"4e758220-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff03bc023-e232-4676-b4fb-385757efc117#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff03bc023-e232-4676-b4fb-385757efc117","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e35138f2-151f-4738-abe7-7445748f5e05","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0235608} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1476bea7-13e9-4075-8e0c-f285c3f9d602","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0238945} device-1 | {"level":"info","message":"GET /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? 200 20ms","method":"GET","requestID":"4e75d040-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b?"} 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":"e3486dd13d10ec7febfb907e7b73bde9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc1c4d1c-c1aa-4b1a-9d65-03c7f121c8da","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0299082} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":627,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.457614,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e790490-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"3921f3bb-0665-422b-95c0-9c8d99c44da5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0320637} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":628,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.922315,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} gateway-1 | {"time_local":"29/Apr/2024:18:35:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.151","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e3486dd13d10ec7febfb907e7b73bde9"} experiment-1 | {"level":"info","message":"POST /experiments? 201 144ms","method":"POST","requestID":"e3486dd13d10ec7febfb907e7b73bde9","responseTime":144,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e7952b0-0657-11ef-8390-917b0c22016f"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling 200 13ms","method":"POST","requestID":"4e790490-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling 200 12ms","method":"POST","requestID":"4e7952b0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1Mn0.kCXNBsRW9C_Z8ZG7BP89h6uILhUnJVVq0AUT1iuXt9o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"d0e0e413d7ee0fd6829187cc9b9d6a8e","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":629,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.959206,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415752,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1Mn0.kCXNBsRW9C_Z8ZG7BP89h6uILhUnJVVq0AUT1iuXt9o"} 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":"d0e0e413d7ee0fd6829187cc9b9d6a8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ec4a0d19-0d3f-4889-910f-09521dcb0d1a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.046881} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":630,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.215031,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e7b9ca0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.741560634Z"}]},"request_id":"c6d98e14-113f-46f8-b162-57e9512cb09c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0520334} device-1 | {"level":"info","message":"POST /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling 200 10ms","method":"POST","requestID":"4e7b9ca0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 2ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d0e0e413d7ee0fd6829187cc9b9d6a8e"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"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":"7f69cee3-26d8-4e0f-933a-dd4eb545f078"},{"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":"d120d8ae-bcef-4ba2-8b31-83c948f90ac8"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"2843f9bd-7bb4-46ee-9470-ab6d345a4585"}]},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"},{"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:35:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 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":"d0e0e413d7ee0fd6829187cc9b9d6a8e"} device-1 | {"level":"info","message":"GET /devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b? 200 16ms","method":"GET","requestID":"d0e0e413d7ee0fd6829187cc9b9d6a8e","responseTime":16,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":631,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.841442,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415751,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1MX0.WpfK70WoP3e6pQytO-Xv9R2q1hCCFu92dalI98VjlCU"} authorization-1 | {"level":"info","message":"POST /authorize 200 2ms","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":"4e7d9870-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1Mn0.kCXNBsRW9C_Z8ZG7BP89h6uILhUnJVVq0AUT1iuXt9o","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"0863f408bcb87f017f465648a8f849ca","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":632,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.851289,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415752,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1Mn0.kCXNBsRW9C_Z8ZG7BP89h6uILhUnJVVq0AUT1iuXt9o"} 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":"0863f408bcb87f017f465648a8f849ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"94c9ab7f-437f-4af8-8c8d-02a979cb1755","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.069895} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"373af468-6a9d-4d0a-bcaa-0b80dac34520","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.0702643} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:49.785947587Z"}]},"request_id":"3b40e97b-0b54-421b-914c-f9acb9686d95","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.070965} 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":"4e7d9870-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0863f408bcb87f017f465648a8f849ca"},"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":"29/Apr/2024:18:35:52 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0863f408bcb87f017f465648a8f849ca"} device-1 | {"level":"info","message":"GET /devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b? 200 14ms","method":"GET","requestID":"0863f408bcb87f017f465648a8f849ca","responseTime":14,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b?"} 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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 41ms","method":"POST","requestID":"4e7d9870-0657-11ef-8390-917b0c22016f","responseTime":41,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"dd6bf022-ace2-4633-89e0-899eacc5dd2a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.1313493} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":633,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.531472,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e886de0-0657-11ef-8390-917b0c22016f"},"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling 200 11ms","method":"POST","requestID":"4e886de0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6fc88366-f18d-4691-b1ae-72e961ec1461","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415752.1426246} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":634,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.05781,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:52Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e8a42a0-0657-11ef-8390-917b0c22016f"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling 200 8ms","method":"POST","requestID":"4e8a42a0-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"136c386e0ef736c554549320a7cbcb6d","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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"},{"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 10ms","method":"POST","requestID":"136c386e0ef736c554549320a7cbcb6d","responseTime":10,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.014","http_referrer":"","http_user_agent":"node-fetch","requestID":"136c386e0ef736c554549320a7cbcb6d"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a4902a2412c87af1daffe538afd46471","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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"},{"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad5140bc-0cdc-4432-bfb7-71a80ced12bb","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1bb09cfe-8565-456e-ae32-857c5d66189f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.2290597} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":635,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.785234,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb","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":"4f2ff880-0657-11ef-8390-917b0c22016f"},"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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb 200 10ms","method":"GET","requestID":"4f2ff880-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 40ms","method":"POST","requestID":"a4902a2412c87af1daffe538afd46471","responseTime":40,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.044","http_referrer":"","http_user_agent":"node-fetch","requestID":"a4902a2412c87af1daffe538afd46471"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4ffe96d7-891d-4055-b9ba-8c1223448007","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.2633162} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":636,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.856905,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f350190-0657-11ef-8390-917b0c22016f"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling 200 12ms","method":"POST","requestID":"4f350190-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b29ae8d-0825-4f3d-8b76-6d20ec5bca83","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.278227} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":637,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.882768,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f374b80-0657-11ef-8390-917b0c22016f"},"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling 200 13ms","method":"POST","requestID":"4f374b80-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c7eb07565c8dd371c159f2ea6390aaf9","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f03bc023-e232-4676-b4fb-385757efc117"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":638,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.122774,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415753,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q"} 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":"c7eb07565c8dd371c159f2ea6390aaf9"},"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/f03bc023-e232-4676-b4fb-385757efc117"} gateway-1 | {"time_local":"29/Apr/2024:18:35:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f03bc023-e232-4676-b4fb-385757efc117 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":"c7eb07565c8dd371c159f2ea6390aaf9"} experiment-1 | {"level":"info","message":"GET /experiments/f03bc023-e232-4676-b4fb-385757efc117 200 16ms","method":"GET","requestID":"c7eb07565c8dd371c159f2ea6390aaf9","responseTime":16,"status":200,"url":"/experiments/f03bc023-e232-4676-b4fb-385757efc117"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ba21720e795057973ac0e745862678fd","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f03bc023-e232-4676-b4fb-385757efc117"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":639,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.162687,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415753,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q"} 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":"ba21720e795057973ac0e745862678fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":640,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.371638,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415753,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q"} 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":"4f441cc0-0657-11ef-8390-917b0c22016f"},"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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad5140bc-0cdc-4432-bfb7-71a80ced12bb': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fad5140bc-0cdc-4432-bfb7-71a80ced12bb","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"e32ea638-3b8a-4847-9f33-4858e6500a3d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.3846695} 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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"},{"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"}}},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f4a58e0c-49e8-4f80-b864-85a660312722","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.385847} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"f8bfbcaa63e90aad44cb6b52dacf3bfb","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"bcf5caec8df8cb506b0509bc84eb2b08","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f441cc0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b"},{"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ad5140bc-0cdc-4432-bfb7-71a80ced12bb","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/ad5140bc-0cdc-4432-bfb7-71a80ced12bb 204 63ms","method":"DELETE","requestID":"4f441cc0-0657-11ef-8390-917b0c22016f","responseTime":63,"status":204,"url":"/peerconnections/ad5140bc-0cdc-4432-bfb7-71a80ced12bb"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f03bc023-e232-4676-b4fb-385757efc117"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd1a3ac17-7b68-46d3-b93e-735f8cadc42b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"828b1d20-8cbd-4e86-b587-e7deaa95129f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.4469035} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":641,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.810471,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f50ee00-0657-11ef-8390-917b0c22016f"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling 200 14ms","method":"POST","requestID":"4f50ee00-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/d1a3ac17-7b68-46d3-b93e-735f8cadc42b/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff03bc023-e232-4676-b4fb-385757efc117': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff03bc023-e232-4676-b4fb-385757efc117","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"2e2f84e2-ff45-46b1-8256-126d750d3ecf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.4578652} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"6be1a81a-4d11-4aff-b332-ea784f2626f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.4583442} 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":"ba21720e795057973ac0e745862678fd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Ffe8727a7-048f-46ca-befa-c8c7e114fc5b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"83be441c-03c0-4555-a734-854b8bf5a86f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.463042} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":642,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.521937,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4f538610-0657-11ef-8390-917b0c22016f"},"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/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling 200 13ms","method":"POST","requestID":"4f538610-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f03bc023-e232-4676-b4fb-385757efc117"} gateway-1 | {"time_local":"29/Apr/2024:18:35:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f03bc023-e232-4676-b4fb-385757efc117 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.190","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ba21720e795057973ac0e745862678fd"} gateway-1 | {"time_local":"29/Apr/2024:18:35:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2396","request_time":"3.175","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"fe599edafe75638868e9e59125e06fbf"} experiment-1 | {"level":"info","message":"DELETE /experiments/f03bc023-e232-4676-b4fb-385757efc117 204 187ms","method":"DELETE","requestID":"ba21720e795057973ac0e745862678fd","responseTime":187,"status":204,"url":"/experiments/f03bc023-e232-4676-b4fb-385757efc117"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.151","http_referrer":"","http_user_agent":"node-fetch","requestID":"f8bfbcaa63e90aad44cb6b52dacf3bfb"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"bcf5caec8df8cb506b0509bc84eb2b08"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 145ms","method":"POST","requestID":"f8bfbcaa63e90aad44cb6b52dacf3bfb","responseTime":145,"status":200,"url":"/callbacks/experiment"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 144ms","method":"POST","requestID":"bcf5caec8df8cb506b0509bc84eb2b08","responseTime":144,"status":200,"url":"/callbacks/experiment"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0e896c7324c7cd2a0718f79e78e82f12","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:35:53 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2529","request_time":"1.734","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"991bd0835c0bc29471f8a62d71178052"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":643,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.070499,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415753,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q"} 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":"0e896c7324c7cd2a0718f79e78e82f12"},"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/d1a3ac17-7b68-46d3-b93e-735f8cadc42b' closed"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/fe8727a7-048f-46ca-befa-c8c7e114fc5b' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"576ed869-b9ae-495d-a01c-e618095f9f39","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.5555675} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e896c7324c7cd2a0718f79e78e82f12"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"46b2aaba-91de-4836-873b-9293a3817832","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.5604467} 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":"0e896c7324c7cd2a0718f79e78e82f12"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8af97011-3afc-45e3-886c-35c452b17932","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.5703084} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"37e4c949-0a6d-4243-85a5-6d4710f09578","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.570395} 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":"0e896c7324c7cd2a0718f79e78e82f12"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.570277110Z"}]},"request_id":"2eab9154-fcc1-40fb-a131-5cc3a51cad7f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.5754724} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"0e896c7324c7cd2a0718f79e78e82f12"},"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":"29/Apr/2024:18:35:53 +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":"0e896c7324c7cd2a0718f79e78e82f12"} device-1 | {"level":"info","message":"POST /devices? 201 43ms","method":"POST","requestID":"0e896c7324c7cd2a0718f79e78e82f12","responseTime":43,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d46399e7be32bfb8ce6120239f118cc0","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":644,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.73972,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:53Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415753,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1M30.rGvsk5_3gSUIezhuQF0gznPQcf32-ErWkUAWiXgfO2Q"} 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":"d46399e7be32bfb8ce6120239f118cc0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"7a5457c4-3b20-4d0f-864c-e62c73b437c8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.6016634} 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":"d46399e7be32bfb8ce6120239f118cc0"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7243d77d-27c9-4ebe-bbd1-99b49667179c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.607197} 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":"d46399e7be32bfb8ce6120239f118cc0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"36c4fdac-3ee9-4e33-a3a3-c6d26afbd5be","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.6175587} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bcd48ed9-e277-42d8-be4e-2641d311c058","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.6176543} 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":"d46399e7be32bfb8ce6120239f118cc0"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"a7908d9f-b9f5-4ebe-a3fb-0726dc3cce80","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415753.6222715} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d46399e7be32bfb8ce6120239f118cc0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"d46399e7be32bfb8ce6120239f118cc0","responseTime":41,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:53 +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":"d46399e7be32bfb8ce6120239f118cc0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NH0.qOXj9bMuU54mAaPv_NxztWgGoPYd5bh6JRSH_GKsGpU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"61f42cb96ac231c07b25cacdcbc3ff12","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":645,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.188365,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415754,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NH0.qOXj9bMuU54mAaPv_NxztWgGoPYd5bh6JRSH_GKsGpU"} 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":"61f42cb96ac231c07b25cacdcbc3ff12"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"b2665653-b114-4b94-84b7-c31a995eaa54","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415754.116483} 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":"61f42cb96ac231c07b25cacdcbc3ff12"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b270cf8e-fe33-4e35-9367-8ca2758a3b94","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415754.1237066} 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":"61f42cb96ac231c07b25cacdcbc3ff12"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"68c9f097-ea5c-410f-a5fc-092431ce97ea","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415754.1420956} 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":"61f42cb96ac231c07b25cacdcbc3ff12"},"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":"29/Apr/2024:18:35:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.050","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"61f42cb96ac231c07b25cacdcbc3ff12"} device-1 | {"level":"info","message":"PATCH /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac 200 46ms","method":"PATCH","requestID":"61f42cb96ac231c07b25cacdcbc3ff12","responseTime":46,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NH0.qOXj9bMuU54mAaPv_NxztWgGoPYd5bh6JRSH_GKsGpU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"2a1b4c95968865f9b2c33c1a4413217a","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:54Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":646,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.266211,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:54Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415754,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NH0.qOXj9bMuU54mAaPv_NxztWgGoPYd5bh6JRSH_GKsGpU"} 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":"2a1b4c95968865f9b2c33c1a4413217a"},"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":"29/Apr/2024:18:35:54 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.026","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"2a1b4c95968865f9b2c33c1a4413217a"} device-1 | {"level":"info","message":"POST /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/websocket 200 22ms","method":"POST","requestID":"2a1b4c95968865f9b2c33c1a4413217a","responseTime":22,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"be614eed8c2c0b9216aac16fc699a34e","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/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":"be614eed8c2c0b9216aac16fc699a34e"} device-1 | {"level":"info","message":"OPTIONS /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/websocket 200 1ms","method":"OPTIONS","requestID":"be614eed8c2c0b9216aac16fc699a34e","responseTime":1,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"553df05b695b43f00500f7e681afd963","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":647,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.379893,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"553df05b695b43f00500f7e681afd963"},"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":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"553df05b695b43f00500f7e681afd963"} device-1 | {"level":"info","message":"POST /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/websocket 200 32ms","method":"POST","requestID":"553df05b695b43f00500f7e681afd963","responseTime":32,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"8c3d9ab0e0d55a67f4a0a295653e0b42","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":648,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.299142,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"8c3d9ab0e0d55a67f4a0a295653e0b42"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.570277110Z"}]},"request_id":"145196ca-1f5a-45c5-b53e-8d7685618d92","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.691869} 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":"8c3d9ab0e0d55a67f4a0a295653e0b42"},"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":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 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":"8c3d9ab0e0d55a67f4a0a295653e0b42"} device-1 | {"level":"info","message":"GET /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 200 19ms","method":"GET","requestID":"8c3d9ab0e0d55a67f4a0a295653e0b42","responseTime":19,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e227bb085b49cb555b6b6a267310aba9","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":649,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.2413,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"e227bb085b49cb555b6b6a267310aba9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"81580e66-e26a-4a5f-bd07-af58578fea47","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.717471} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e227bb085b49cb555b6b6a267310aba9"},"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":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e227bb085b49cb555b6b6a267310aba9"} device-1 | {"level":"info","message":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? 200 19ms","method":"GET","requestID":"e227bb085b49cb555b6b6a267310aba9","responseTime":19,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"cd5b46110b182ffe7c4cdf68e4504116","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:45964","level":"info","msg":"Received request.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":650,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.268309,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"cd5b46110b182ffe7c4cdf68e4504116"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"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:45964","level":"info","msg":"Received request.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":651,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.010183,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"50b81f20-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":652,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.55619,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"50b86d40-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.570277110Z"}]},"request_id":"fc9f5c9a-bb5b-427e-92ba-e324c7f76b5e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.807366} 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":"50b81f20-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"7c585943-2763-40d0-8bea-a9a4e1a83fff","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.8091197} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50b86d40-0657-11ef-8390-917b0c22016f"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 200 22ms","method":"GET","requestID":"50b81f20-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? 200 22ms","method":"GET","requestID":"50b86d40-0657-11ef-8390-917b0c22016f","responseTime":22,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"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:45964","level":"info","msg":"Received request.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":653,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.787937,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"50c4a240-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":654,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.70947,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"50c4f060-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":655,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.453095,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"17d3636f-a0ec-43b4-bafb-f1dbf78f9dc2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.8876944} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50c51770-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.570277110Z"}]},"request_id":"f43e4ba1-6e16-4221-8276-3a8c8fc331e5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.8912532} 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":"50c4a240-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"6146c64b-e18b-40c8-bb53-7b63f5bdd4ec","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.895675} 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":"50c4f060-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling 200 21ms","method":"POST","requestID":"50c51770-0657-11ef-8390-917b0c22016f","responseTime":21,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb243f56-8e06-4915-b784-5912c1511806#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb243f56-8e06-4915-b784-5912c1511806","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"a909d5fe-cf08-4a31-a6be-0feddcaf0ce0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.9027643} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7a87452c-9d18-41fc-b8ad-40dcf3f7a517","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.9033182} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 19ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cd5b46110b182ffe7c4cdf68e4504116"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":19}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 200 34ms","method":"GET","requestID":"50c4a240-0657-11ef-8390-917b0c22016f","responseTime":34,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4cb62f16-1764-4321-a46b-94ae26fc2780","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.9129744} device-1 | {"level":"info","message":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? 200 35ms","method":"GET","requestID":"50c4f060-0657-11ef-8390-917b0c22016f","responseTime":35,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":656,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.542314,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50c93620-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.193","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cd5b46110b182ffe7c4cdf68e4504116"} experiment-1 | {"level":"info","message":"POST /experiments? 201 185ms","method":"POST","requestID":"cd5b46110b182ffe7c4cdf68e4504116","responseTime":185,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling 200 14ms","method":"POST","requestID":"50c93620-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9c437a1a-846b-4fc8-b7be-900d49c37e8c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.9223313} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":657,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.052926,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"5a5ed6fe05acae02a083982732aca090","responseTime":3,"status":200,"url":"/auth"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50cae3d0-0657-11ef-8390-917b0c22016f"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling 200 12ms","method":"POST","requestID":"50cae3d0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":658,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.030677,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"5a5ed6fe05acae02a083982732aca090"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.570277110Z"}]},"request_id":"66063034-ef2b-48a5-bb28-f6cca15dc439","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.937003} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6ff5bc1d-adea-466e-b298-632ee15f70dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.937165} 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":"5a5ed6fe05acae02a083982732aca090"},"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:45964","level":"info","msg":"Sent response.","req_id":659,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.590331,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50cd06b0-0657-11ef-8390-917b0c22016f"},"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":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 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":"5a5ed6fe05acae02a083982732aca090"} device-1 | {"level":"info","message":"GET /devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3? 200 18ms","method":"GET","requestID":"5a5ed6fe05acae02a083982732aca090","responseTime":18,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling 200 13ms","method":"POST","requestID":"50cd06b0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"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":"ebe82149-b74f-4593-821b-fcf86d62755b"},{"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":"8646d6fd-3749-4355-a9d0-1e1c3706f32b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"9204c54a-7527-4624-9848-a9367c08b121"}]},"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"},{"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"cbed1a7d5b7d75d279091cb564c769c7","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":660,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.637885,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"50cf77b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":661,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.65768,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:55Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415755,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1NX0.OOYHXS9zFjC0Vk3ILaYKcc7iblAwIXji_turSc-Gw5c"} 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":"cbed1a7d5b7d75d279091cb564c769c7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:53.617528480Z"}]},"request_id":"86889b6d-2105-48f6-b145-4ea21b94ce81","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.955561} 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":"cbed1a7d5b7d75d279091cb564c769c7"},"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":"29/Apr/2024:18:35:55 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.014","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"cbed1a7d5b7d75d279091cb564c769c7"} device-1 | {"level":"info","message":"GET /devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac? 200 10ms","method":"GET","requestID":"cbed1a7d5b7d75d279091cb564c769c7","responseTime":10,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"db530eb5-a900-44d0-8580-195437e9058a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.9590845} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"763bfd05-f606-4042-bc78-4530a8ecca1a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415755.959262} authorization-1 | {"level":"info","message":"POST /relations/update 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"183","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50cf77b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"postPeerconnections: registering closed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postPeerconnections: registering status-changed-callback for 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Trying to create signaling queues for peerconnection 'http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"50cf77b0-0657-11ef-8390-917b0c22016f","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fa61d9a5-4acb-47ed-8a53-73631e1f717d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415756.024444} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":662,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.265811,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50da4d20-0657-11ef-8390-917b0c22016f"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling 200 13ms","method":"POST","requestID":"50da4d20-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:56Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bb4b74bb-700e-42f7-b12b-a6b7c6c36eae","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415756.0380168} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":663,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.774717,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:56Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"50dc9710-0657-11ef-8390-917b0c22016f"},"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling 200 12ms","method":"POST","requestID":"50dc9710-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","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/9e13869a-997c-4722-a4c4-f8827a555225' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1d3b7124db504d1be9f7fafe26410e22","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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"},{"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"1d3b7124db504d1be9f7fafe26410e22","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"1d3b7124db504d1be9f7fafe26410e22"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","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/9e13869a-997c-4722-a4c4-f8827a555225' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e59377654781252263df641bd79069a5","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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"},{"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e13869a-997c-4722-a4c4-f8827a555225","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e6cd2e83-7d9a-44f6-afa1-b573caa61528","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.137813} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":664,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.787181,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225","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":"518448c0-0657-11ef-8390-917b0c22016f"},"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/9e13869a-997c-4722-a4c4-f8827a555225 200 11ms","method":"GET","requestID":"518448c0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 36ms","method":"POST","requestID":"e59377654781252263df641bd79069a5","responseTime":36,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.039","http_referrer":"","http_user_agent":"node-fetch","requestID":"e59377654781252263df641bd79069a5"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"58d39cbb-38a0-407c-926e-f04165336e20","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.167605} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":665,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.297551,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5188dca0-0657-11ef-8390-917b0c22016f"},"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling 200 11ms","method":"POST","requestID":"5188dca0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5cfc8e0d-a145-40f1-8f12-4e1c0b16c2fb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.179778} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":666,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.524831,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"518ad870-0657-11ef-8390-917b0c22016f"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling 200 10ms","method":"POST","requestID":"518ad870-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"368acd8dd6a599d7c3e841a0f1511492","responseTime":6,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/cb243f56-8e06-4915-b784-5912c1511806"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":667,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.626162,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} 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":"368acd8dd6a599d7c3e841a0f1511492"},"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/cb243f56-8e06-4915-b784-5912c1511806"} gateway-1 | {"time_local":"29/Apr/2024:18:35:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/cb243f56-8e06-4915-b784-5912c1511806 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"368acd8dd6a599d7c3e841a0f1511492"} experiment-1 | {"level":"info","message":"GET /experiments/cb243f56-8e06-4915-b784-5912c1511806 200 14ms","method":"GET","requestID":"368acd8dd6a599d7c3e841a0f1511492","responseTime":14,"status":200,"url":"/experiments/cb243f56-8e06-4915-b784-5912c1511806"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"64b4b6ab4211357d404663fa8652d0c1","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/cb243f56-8e06-4915-b784-5912c1511806"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":668,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":0.891309,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} 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":"64b4b6ab4211357d404663fa8652d0c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":669,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":0.643298,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} 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":"5197d0c0-0657-11ef-8390-917b0c22016f"},"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/9e13869a-997c-4722-a4c4-f8827a555225' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4ecff04ac5f94394c6786be4ee935100","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e13869a-997c-4722-a4c4-f8827a555225': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F9e13869a-997c-4722-a4c4-f8827a555225","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"a2d042a5-b331-4f79-941c-c8a61cd75fa0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.2855911} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"in","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"in","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"},{"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"1850b4d25e4a357f2204a9461df33e2f","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"92780a67-b5e7-436c-ac2c-5c6a8c93392c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.2862985} 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":"5197d0c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":13}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac"},{"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"9e13869a-997c-4722-a4c4-f8827a555225","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/9e13869a-997c-4722-a4c4-f8827a555225 204 62ms","method":"DELETE","requestID":"5197d0c0-0657-11ef-8390-917b0c22016f","responseTime":62,"status":204,"url":"/peerconnections/9e13869a-997c-4722-a4c4-f8827a555225"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/cb243f56-8e06-4915-b784-5912c1511806"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F52b90a39-9b7b-427f-8b3b-f1dc409b69ac","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f919646e-4f30-4905-a1ce-1b64ae421a19","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.3466384} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":670,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.23354,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"51a405c0-0657-11ef-8390-917b0c22016f"},"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling 200 14ms","method":"POST","requestID":"51a405c0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/52b90a39-9b7b-427f-8b3b-f1dc409b69ac/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb243f56-8e06-4915-b784-5912c1511806': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fcb243f56-8e06-4915-b784-5912c1511806","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"40ccbcae-fa2d-4841-9428-aed53acce4c4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.3581746} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"703b0b48-25dc-44bc-8f66-e2f0b85ea2dc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.3589277} 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":"64b4b6ab4211357d404663fa8652d0c1"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":22}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9b507db1-0df0-4a85-857b-ca17a62be4bf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.364527} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":671,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.562009,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"51a69dd0-0657-11ef-8390-917b0c22016f"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling 200 15ms","method":"POST","requestID":"51a69dd0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/cb243f56-8e06-4915-b784-5912c1511806"} gateway-1 | {"time_local":"29/Apr/2024:18:35:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/cb243f56-8e06-4915-b784-5912c1511806 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":"64b4b6ab4211357d404663fa8652d0c1"} experiment-1 | {"level":"info","message":"DELETE /experiments/cb243f56-8e06-4915-b784-5912c1511806 204 170ms","method":"DELETE","requestID":"64b4b6ab4211357d404663fa8652d0c1","responseTime":170,"status":204,"url":"/experiments/cb243f56-8e06-4915-b784-5912c1511806"} gateway-1 | {"time_local":"29/Apr/2024:18:35:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2396","request_time":"3.241","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5e2e400dd488b35e4e66ef3ea76493d8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 133ms","method":"POST","requestID":"4ecff04ac5f94394c6786be4ee935100","responseTime":133,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.138","http_referrer":"","http_user_agent":"node-fetch","requestID":"4ecff04ac5f94394c6786be4ee935100"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 132ms","method":"POST","requestID":"1850b4d25e4a357f2204a9461df33e2f","responseTime":132,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"1850b4d25e4a357f2204a9461df33e2f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1352a9537f6da3b4f68fc09cf40ded7b","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":672,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.868835,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} gateway-1 | {"time_local":"29/Apr/2024:18:35:57 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2529","request_time":"1.776","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d53fcef26626b46fc8b6abebd3eb9f1d"} 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":"1352a9537f6da3b4f68fc09cf40ded7b"},"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/52b90a39-9b7b-427f-8b3b-f1dc409b69ac' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"f4d01ed6-db85-48b1-b5d5-b59e0c6a1404","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4454052} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1352a9537f6da3b4f68fc09cf40ded7b"},"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/38dbf313-d5ec-4fb9-a0ab-1c1bdbb2b1a3' 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f577b281-d067-4f72-998c-6b401960f914","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4514823} 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":"1352a9537f6da3b4f68fc09cf40ded7b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"7401a20f-36bc-4e9c-8649-82f5e6813b69","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4650414} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"19f84986-79e6-418d-a993-9d4c502370f2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4652057} 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":"1352a9537f6da3b4f68fc09cf40ded7b"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"d7629a96-b7ab-40df-89e5-a3e822462338","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4708297} 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":"1352a9537f6da3b4f68fc09cf40ded7b"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 50ms","method":"POST","requestID":"1352a9537f6da3b4f68fc09cf40ded7b","responseTime":50,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35: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.055","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1352a9537f6da3b4f68fc09cf40ded7b"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d39fc374216d0c5603eb42230e3d52bd","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":673,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.73161,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} 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":"d39fc374216d0c5603eb42230e3d52bd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"868299d4-014f-4b9f-8b87-9f47620a307d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.4958389} 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":"d39fc374216d0c5603eb42230e3d52bd"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b51211a8-1525-48f2-8054-a825e4cf0185","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.5005684} 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":"d39fc374216d0c5603eb42230e3d52bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e5713121-81e9-456b-b132-f23b83179783","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.51003} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b20eabef-853d-4c08-b8df-766036aac608","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.510157} 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":"d39fc374216d0c5603eb42230e3d52bd"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.510005816Z"}]},"request_id":"9d89cecf-2fd4-468c-8c6a-6b48c8406481","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415757.5145419} 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":"d39fc374216d0c5603eb42230e3d52bd"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"d39fc374216d0c5603eb42230e3d52bd","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:57 +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":"d39fc374216d0c5603eb42230e3d52bd"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"5b76ed64b01d0da1e046afbb8ce4bf26","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:57Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":674,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.816117,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415757,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1N30.ZRyM7ilNVw3XYEgPmZiaaaZqiGOS_0NzhlmIxfMNnmo"} 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":"5b76ed64b01d0da1e046afbb8ce4bf26"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"69b30060-cf45-4d66-b28d-b96ddfcef3d1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415758.0080745} 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":"5b76ed64b01d0da1e046afbb8ce4bf26"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"fd50da19-e368-44fa-a256-1f66dca5fe8e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415758.0140705} 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":"5b76ed64b01d0da1e046afbb8ce4bf26"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"04ddafc1-29d9-438c-b6d4-7dd17ebe4491","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415758.0408642} 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":"5b76ed64b01d0da1e046afbb8ce4bf26"},"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/d0ce320d-d884-42da-945d-79307b6ffe34 200 49ms","method":"PATCH","requestID":"5b76ed64b01d0da1e046afbb8ce4bf26","responseTime":49,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34"} gateway-1 | {"time_local":"29/Apr/2024:18:35:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/d0ce320d-d884-42da-945d-79307b6ffe34 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"5b76ed64b01d0da1e046afbb8ce4bf26"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OH0.6F0CCpNrjtRbJuFocy-v0ahHmuWkDNgfKhT90bop3SY","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"290cbc85e62bca732e4421b4bd86febd","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:58Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":675,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.255556,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:58Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415758,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OH0.6F0CCpNrjtRbJuFocy-v0ahHmuWkDNgfKhT90bop3SY"} 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":"290cbc85e62bca732e4421b4bd86febd"},"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":"29/Apr/2024:18:35:58 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d0ce320d-d884-42da-945d-79307b6ffe34/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":"290cbc85e62bca732e4421b4bd86febd"} device-1 | {"level":"info","message":"POST /devices/d0ce320d-d884-42da-945d-79307b6ffe34/websocket 200 23ms","method":"POST","requestID":"290cbc85e62bca732e4421b4bd86febd","responseTime":23,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e884a3d0418ac76fd93cb0dcf3db0451","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/393f6016-b66b-4744-8866-dcc82e050410/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":"e884a3d0418ac76fd93cb0dcf3db0451"} device-1 | {"level":"info","message":"OPTIONS /devices/393f6016-b66b-4744-8866-dcc82e050410/websocket 200 2ms","method":"OPTIONS","requestID":"e884a3d0418ac76fd93cb0dcf3db0451","responseTime":2,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"f93e89f606e96feb455a54a53be86a61","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":676,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.303295,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"f93e89f606e96feb455a54a53be86a61"},"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/393f6016-b66b-4744-8866-dcc82e050410/websocket 200 40ms","method":"POST","requestID":"f93e89f606e96feb455a54a53be86a61","responseTime":40,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/393f6016-b66b-4744-8866-dcc82e050410/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.047","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"f93e89f606e96feb455a54a53be86a61"} device-1 | {"level":"info","message":"device 'http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"b171ebe4e0a6f186dda744231ddb1a31","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":677,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.196821,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"b171ebe4e0a6f186dda744231ddb1a31"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"bd2df1a1-9b4b-4385-82bb-b7ff46f1303b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.6105478} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"b171ebe4e0a6f186dda744231ddb1a31"},"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":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d0ce320d-d884-42da-945d-79307b6ffe34? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.028","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"b171ebe4e0a6f186dda744231ddb1a31"} device-1 | {"level":"info","message":"GET /devices/d0ce320d-d884-42da-945d-79307b6ffe34? 200 20ms","method":"GET","requestID":"b171ebe4e0a6f186dda744231ddb1a31","responseTime":20,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"b2fa5e21ec2c251927b7d1628f95736f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":678,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.300074,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"b2fa5e21ec2c251927b7d1628f95736f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.510005816Z"}]},"request_id":"dec12da6-b2a5-4c94-b85c-e116ccd14d35","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.637848} 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":"b2fa5e21ec2c251927b7d1628f95736f"},"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/393f6016-b66b-4744-8866-dcc82e050410? 200 19ms","method":"GET","requestID":"b2fa5e21ec2c251927b7d1628f95736f","responseTime":19,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/393f6016-b66b-4744-8866-dcc82e050410? 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":"b2fa5e21ec2c251927b7d1628f95736f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"0069b5a92b7a98e51a3b4e98d7c028a5","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:45964","level":"info","msg":"Received request.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":679,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.215034,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"0069b5a92b7a98e51a3b4e98d7c028a5"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"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:45964","level":"info","msg":"Received request.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":680,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.281847,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"530d80d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":681,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.343396,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"530df600-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"a7a8a639-c5b3-47ed-b17e-4176fbde3dce","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.722247} 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":"530d80d0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.510005816Z"}]},"request_id":"4c0989f0-046c-4cfe-b10d-05f805d3b381","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.7249281} 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":"530df600-0657-11ef-8390-917b0c22016f"},"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/d0ce320d-d884-42da-945d-79307b6ffe34? 200 26ms","method":"GET","requestID":"530d80d0-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/393f6016-b66b-4744-8866-dcc82e050410? 200 24ms","method":"GET","requestID":"530df600-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":682,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.403658,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"531a7920-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":683,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.643551,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"531ac740-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":684,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.132894,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bc254ab4-904a-4620-8231-b31c5d7a3f6d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8085425} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 13ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"531b1560-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":13}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"5a683573-4328-4757-81bf-ee6731f117e2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.81486} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling 200 25ms","method":"POST","requestID":"531b1560-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"531a7920-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.510005816Z"}]},"request_id":"52f526fd-32f0-41ec-8aaa-0041b2e47c7e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8218856} 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":"531ac740-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F123fd308-3ce8-474e-8a81-dfe19142f6b0#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F123fd308-3ce8-474e-8a81-dfe19142f6b0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"12cd57c6-014b-4641-8b40-18f72d3b6333","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.830289} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"68b2dd9b-e0af-4ee6-934f-6e7ad6b34478","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8315275} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} 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":"0069b5a92b7a98e51a3b4e98d7c028a5"},"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:45964","level":"info","msg":"Received request.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} device-1 | {"level":"info","message":"GET /devices/d0ce320d-d884-42da-945d-79307b6ffe34? 200 43ms","method":"GET","requestID":"531a7920-0657-11ef-8390-917b0c22016f","responseTime":43,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/393f6016-b66b-4744-8866-dcc82e050410? 200 44ms","method":"GET","requestID":"531ac740-0657-11ef-8390-917b0c22016f","responseTime":44,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf3ff08d-f63c-4409-80ee-2a7c7069f2db","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8412628} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":685,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":7.962298,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"531fd050-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 200ms","method":"POST","requestID":"0069b5a92b7a98e51a3b4e98d7c028a5","responseTime":200,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.207","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0069b5a92b7a98e51a3b4e98d7c028a5"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/393f6016-b66b-4744-8866-dcc82e050410/signaling 200 25ms","method":"POST","requestID":"531fd050-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4fb493a-deff-459e-9c68-baa76709fdb1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8574212} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":686,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.94122,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"532304a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8a03e6483a1da95436c0b9ba00223524","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/d0ce320d-d884-42da-945d-79307b6ffe34/signaling 200 17ms","method":"POST","requestID":"532304a0-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":687,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.025181,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"8a03e6483a1da95436c0b9ba00223524"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"00758f1e-3b98-44c9-b87e-1450701f29d6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8733664} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.465014771Z"}]},"request_id":"511a31b3-ff9c-4adc-9aeb-fa08ab12736a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.8735669} 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":"8a03e6483a1da95436c0b9ba00223524"},"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:45964","level":"info","msg":"Sent response.","req_id":688,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.790335,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5325ead0-0657-11ef-8390-917b0c22016f"},"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":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d0ce320d-d884-42da-945d-79307b6ffe34? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8a03e6483a1da95436c0b9ba00223524"} device-1 | {"level":"info","message":"GET /devices/d0ce320d-d884-42da-945d-79307b6ffe34? 200 15ms","method":"GET","requestID":"8a03e6483a1da95436c0b9ba00223524","responseTime":15,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/393f6016-b66b-4744-8866-dcc82e050410/signaling 200 12ms","method":"POST","requestID":"5325ead0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"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":"27d9770e-9256-4330-b572-2dd145b91834"},{"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":"622d01da-18d6-4b68-8ee4-9cc906598350"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"63bdb5bb-e569-4b71-9690-d7f35adb44df"}]},"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/d0ce320d-d884-42da-945d-79307b6ffe34"},{"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/393f6016-b66b-4744-8866-dcc82e050410"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"056d75a2f924d949071a74cf46544f81","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":689,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.802486,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"532834c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":690,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.196528,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415759,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc1OX0.QjDLVT3_-oSg1REyjJ2WK1m4m7lkoENlIke7IopHgkg"} 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":"056d75a2f924d949071a74cf46544f81"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:35:57.510005816Z"}]},"request_id":"0cb5bdb8-d335-46fc-ba5b-223b7ea5e7ba","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.898977} 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":"056d75a2f924d949071a74cf46544f81"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"57328cdd-fe5d-4a1a-9842-eb4de0b4b9e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.903} gateway-1 | {"time_local":"29/Apr/2024:18:35:59 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/393f6016-b66b-4744-8866-dcc82e050410? 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":"056d75a2f924d949071a74cf46544f81"} device-1 | {"level":"info","message":"GET /devices/393f6016-b66b-4744-8866-dcc82e050410? 200 17ms","method":"GET","requestID":"056d75a2f924d949071a74cf46544f81","responseTime":17,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b6935f1c-b7c4-4097-a394-221322ef1930","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.9032762} 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":"532834c0-0657-11ef-8390-917b0c22016f"},"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/3e644bcf-7f73-430f-82e8-f91ed09e1773'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773'"} 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":"532834c0-0657-11ef-8390-917b0c22016f","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/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0cbe246b-cdfb-4c29-9009-760cd96134bd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.962804} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":691,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.578341,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53335850-0657-11ef-8390-917b0c22016f"},"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/d0ce320d-d884-42da-945d-79307b6ffe34/signaling 200 11ms","method":"POST","requestID":"53335850-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0ef71e53-5535-4025-b2f5-a028fc58cba9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415759.9746318} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":692,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.750048,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:35:59Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53355420-0657-11ef-8390-917b0c22016f"},"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/393f6016-b66b-4744-8866-dcc82e050410/signaling 200 10ms","method":"POST","requestID":"53355420-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/signaling"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","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/3e644bcf-7f73-430f-82e8-f91ed09e1773' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"790cc5b850b85b5b107f7a94d1736f61","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/d0ce320d-d884-42da-945d-79307b6ffe34"},{"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/393f6016-b66b-4744-8866-dcc82e050410"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 9ms","method":"POST","requestID":"790cc5b850b85b5b107f7a94d1736f61","responseTime":9,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.013","http_referrer":"","http_user_agent":"node-fetch","requestID":"790cc5b850b85b5b107f7a94d1736f61"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","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/3e644bcf-7f73-430f-82e8-f91ed09e1773' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"489eba067fa783935837fe23ece06862","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/d0ce320d-d884-42da-945d-79307b6ffe34"},{"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/393f6016-b66b-4744-8866-dcc82e050410"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e644bcf-7f73-430f-82e8-f91ed09e1773","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1563b851-f03f-4e75-bb8e-f3b11ab6bc9b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.0903332} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":693,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.643456,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773","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":"53df4fc0-0657-11ef-8390-917b0c22016f"},"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/3e644bcf-7f73-430f-82e8-f91ed09e1773 200 12ms","method":"GET","requestID":"53df4fc0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 37ms","method":"POST","requestID":"489eba067fa783935837fe23ece06862","responseTime":37,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.040","http_referrer":"","http_user_agent":"node-fetch","requestID":"489eba067fa783935837fe23ece06862"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f045d19e-f803-4184-a0e3-45ed21e0224e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.121434} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":694,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.461984,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53e40ab0-0657-11ef-8390-917b0c22016f"},"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/d0ce320d-d884-42da-945d-79307b6ffe34/signaling 200 15ms","method":"POST","requestID":"53e40ab0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1d7baf35-44fe-4323-a6b6-76d770b80e3e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.1396024} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":695,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.083283,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53e67bb0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/393f6016-b66b-4744-8866-dcc82e050410/signaling 200 15ms","method":"POST","requestID":"53e67bb0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"0c441d9f5485a9824f52f8953a2f3d63","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":696,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.302306,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"0c441d9f5485a9824f52f8953a2f3d63"},"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/123fd308-3ce8-474e-8a81-dfe19142f6b0"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.018","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"0c441d9f5485a9824f52f8953a2f3d63"} experiment-1 | {"level":"info","message":"GET /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0 200 12ms","method":"GET","requestID":"0c441d9f5485a9824f52f8953a2f3d63","responseTime":12,"status":200,"url":"/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e82d1e0f283d8f3ccdf16d58da0a70d2","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":697,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.299106,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"e82d1e0f283d8f3ccdf16d58da0a70d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":698,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.208562,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"53f0dbf0-0657-11ef-8390-917b0c22016f"},"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/3e644bcf-7f73-430f-82e8-f91ed09e1773' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7817faf60681f0e4b2923a49fa2509c8","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9371d2f4-574c-4755-bb78-8ad2d63cf734","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.2288005} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e644bcf-7f73-430f-82e8-f91ed09e1773': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F3e644bcf-7f73-430f-82e8-f91ed09e1773","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"9d90f1d7-e32a-43d0-a710-20189a09aa73","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.2294562} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.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/d0ce320d-d884-42da-945d-79307b6ffe34"},{"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/393f6016-b66b-4744-8866-dcc82e050410"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"7c0b47ea504d1e5a409d45fa87f46c0c","responseTime":2,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53f0dbf0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"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/d0ce320d-d884-42da-945d-79307b6ffe34"},{"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/393f6016-b66b-4744-8866-dcc82e050410"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"3e644bcf-7f73-430f-82e8-f91ed09e1773","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/3e644bcf-7f73-430f-82e8-f91ed09e1773 204 59ms","method":"DELETE","requestID":"53f0dbf0-0657-11ef-8390-917b0c22016f","responseTime":59,"status":204,"url":"/peerconnections/3e644bcf-7f73-430f-82e8-f91ed09e1773"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd0ce320d-d884-42da-945d-79307b6ffe34","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"fff26692-24ae-4b76-87e8-1c6493749478","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.2883794} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":699,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.275682,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d0ce320d-d884-42da-945d-79307b6ffe34","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"53fd5f10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling 200 15ms","method":"POST","requestID":"53fd5f10-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/d0ce320d-d884-42da-945d-79307b6ffe34/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F123fd308-3ce8-474e-8a81-dfe19142f6b0': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F123fd308-3ce8-474e-8a81-dfe19142f6b0","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"d5e84fa5-21bb-4fef-8a50-fd3564478aed","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.2983425} 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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"628bebc1-838c-4260-891f-35dc8e3b6434","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.2990022} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e82d1e0f283d8f3ccdf16d58da0a70d2"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F393f6016-b66b-4744-8866-dcc82e050410","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6d6e01f2-70ff-46cd-832c-5c98635fdfe2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.3066928} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":700,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.066594,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"54001e30-0657-11ef-8390-917b0c22016f"},"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/393f6016-b66b-4744-8866-dcc82e050410/signaling 200 15ms","method":"POST","requestID":"54001e30-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/393f6016-b66b-4744-8866-dcc82e050410/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e82d1e0f283d8f3ccdf16d58da0a70d2"} experiment-1 | {"level":"info","message":"DELETE /experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0 204 176ms","method":"DELETE","requestID":"e82d1e0f283d8f3ccdf16d58da0a70d2","responseTime":176,"status":204,"url":"/experiments/123fd308-3ce8-474e-8a81-dfe19142f6b0"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2400","request_time":"3.285","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"3b0488bae39b4e7d1920dc7e13851dec"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"7817faf60681f0e4b2923a49fa2509c8","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"7817faf60681f0e4b2923a49fa2509c8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"7c0b47ea504d1e5a409d45fa87f46c0c","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.141","http_referrer":"","http_user_agent":"node-fetch","requestID":"7c0b47ea504d1e5a409d45fa87f46c0c"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"ef5efea24279e2e195680be71cc6e53f","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} gateway-1 | {"time_local":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2527","request_time":"1.802","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"d05739998e19113adc74ede5556875a1"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":701,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.955907,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"ef5efea24279e2e195680be71cc6e53f"},"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/d0ce320d-d884-42da-945d-79307b6ffe34' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"33bed39c-f6f1-4d06-936f-bc98ac2308f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.3923748} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"ef5efea24279e2e195680be71cc6e53f"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b408998e-9759-4215-9968-5820b07d9a4d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.3985581} 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":"ef5efea24279e2e195680be71cc6e53f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/393f6016-b66b-4744-8866-dcc82e050410' closed"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"14949bb0-724b-48ed-9db6-e875c29f4258","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4095607} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"9bf7d315-127b-4ade-9873-809edb4ae1b7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4096322} 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":"ef5efea24279e2e195680be71cc6e53f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"fd6aafd0-cc82-4301-b989-40f8cd7bcc0f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.414358} 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":"ef5efea24279e2e195680be71cc6e53f"},"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":"29/Apr/2024:18:36:01 +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":"ef5efea24279e2e195680be71cc6e53f"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"ef5efea24279e2e195680be71cc6e53f","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"4547004535a35891ad1b8e638aee1629","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":702,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.698452,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"4547004535a35891ad1b8e638aee1629"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a6ac3d93-37c2-4840-adc2-63f2bb849d09","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4381254} 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":"4547004535a35891ad1b8e638aee1629"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"7e213174-8af0-4e57-ba68-e159f3bfcc42","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4431171} 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":"4547004535a35891ad1b8e638aee1629"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8c075f85-b916-4530-8d88-68827160cd08","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4519718} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4405588c-654b-41ef-889f-a2474f6f1f30","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.4522374} 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":"4547004535a35891ad1b8e638aee1629"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.451948076Z"}]},"request_id":"3e5321b9-6839-498b-9b69-d4f46645aa08","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.456495} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4547004535a35891ad1b8e638aee1629"},"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":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4547004535a35891ad1b8e638aee1629"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"4547004535a35891ad1b8e638aee1629","responseTime":37,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6881bdc6ec2739348512bdfc74e459ce","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":703,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.234237,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"6881bdc6ec2739348512bdfc74e459ce"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"471922a6-cb66-4461-84c7-26ee00ff62f9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.94385} 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":"6881bdc6ec2739348512bdfc74e459ce"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3367338f-75e7-4d75-9703-ccda370ce59b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.949847} 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":"6881bdc6ec2739348512bdfc74e459ce"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"8f701d3a-94bc-4e9d-809c-4ac2d35a67f7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415761.979121} 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":"6881bdc6ec2739348512bdfc74e459ce"},"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":"29/Apr/2024:18:36:01 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.056","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"6881bdc6ec2739348512bdfc74e459ce"} device-1 | {"level":"info","message":"PATCH /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a 200 50ms","method":"PATCH","requestID":"6881bdc6ec2739348512bdfc74e459ce","responseTime":50,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"ba01aa6e9e6290d9e76f1361a40fa5d0","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":704,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.840826,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:01Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415761,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2MX0.ZhoYfOm0t2RH5LP8HwABG4CAb_HBqC8PR8hPuskxYMo"} 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":"ba01aa6e9e6290d9e76f1361a40fa5d0"},"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":"29/Apr/2024:18:36:02 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.027","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"ba01aa6e9e6290d9e76f1361a40fa5d0"} device-1 | {"level":"info","message":"POST /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/websocket 200 20ms","method":"POST","requestID":"ba01aa6e9e6290d9e76f1361a40fa5d0","responseTime":20,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"364b6add63cd2e9294764b65a5400d9e","responseTime":2,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/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":"364b6add63cd2e9294764b65a5400d9e"} device-1 | {"level":"info","message":"OPTIONS /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/websocket 200 2ms","method":"OPTIONS","requestID":"364b6add63cd2e9294764b65a5400d9e","responseTime":2,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"a4153b81c5a997531bf57f21b2d79829","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":705,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.834736,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"a4153b81c5a997531bf57f21b2d79829"},"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":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.033","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"a4153b81c5a997531bf57f21b2d79829"} device-1 | {"level":"info","message":"POST /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/websocket 200 28ms","method":"POST","requestID":"a4153b81c5a997531bf57f21b2d79829","responseTime":28,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a52086bb8ca795d3794f438526df3cd3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":706,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.172823,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"a52086bb8ca795d3794f438526df3cd3"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"ba468ef7-5e6a-4a82-8a2f-ced99ad2f069","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.4845965} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a52086bb8ca795d3794f438526df3cd3"},"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":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.023","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a52086bb8ca795d3794f438526df3cd3"} device-1 | {"level":"info","message":"GET /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? 200 19ms","method":"GET","requestID":"a52086bb8ca795d3794f438526df3cd3","responseTime":19,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4a5fc3ab5e82b9bb8a63956c32e956b7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":707,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.144713,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"4a5fc3ab5e82b9bb8a63956c32e956b7"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.451948076Z"}]},"request_id":"dea64d62-6a76-4bb8-b149-bf624157d2d6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.5120802} 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":"4a5fc3ab5e82b9bb8a63956c32e956b7"},"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":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 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":"4a5fc3ab5e82b9bb8a63956c32e956b7"} device-1 | {"level":"info","message":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 200 20ms","method":"GET","requestID":"4a5fc3ab5e82b9bb8a63956c32e956b7","responseTime":20,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6d3d3f44076ba8a1adf21b3c4e299483","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:45964","level":"info","msg":"Received request.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":708,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.276927,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"6d3d3f44076ba8a1adf21b3c4e299483"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"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:45964","level":"info","msg":"Received request.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":709,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.812755,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"555af340-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":710,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.929725,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"555b4160-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"893e4d6e-53da-4de8-8736-b92c7dcdc041","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.5854604} 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":"555af340-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.451948076Z"}]},"request_id":"76e54f17-2c8c-46e5-bd38-fb5a944ec904","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.587609} 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":"555b4160-0657-11ef-8390-917b0c22016f"},"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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? 200 25ms","method":"GET","requestID":"555af340-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 200 24ms","method":"GET","requestID":"555b4160-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":711,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.617733,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"55663de0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":712,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.458601,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"55668c00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"da28536a-0342-4b49-9672-80300111cee0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6620843} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":713,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.064188,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5566da20-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"4d1c29f9-a35c-4edc-a1f9-179d96636a40","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6663606} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} 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":"55663de0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"POST /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling 200 23ms","method":"POST","requestID":"5566da20-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.451948076Z"}]},"request_id":"742c02a8-99f5-4577-9b98-6e48e92c4833","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6719878} 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":"55668c00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ab34136-30cd-42c7-80b6-6d3287a25341#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ab34136-30cd-42c7-80b6-6d3287a25341","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"7d80edfc-8bb8-4897-8499-26a587e5bf99","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6780548} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2f0f4523-c206-4e22-94d4-2251ffc99f57","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6785035} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 21ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6d3d3f44076ba8a1adf21b3c4e299483"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":21}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? 200 39ms","method":"GET","requestID":"55663de0-0657-11ef-8390-917b0c22016f","responseTime":39,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"82ef7d9d-20f8-4708-8061-65182b45de0b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.6871982} device-1 | {"level":"info","message":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 200 39ms","method":"GET","requestID":"55668c00-0657-11ef-8390-917b0c22016f","responseTime":39,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":714,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.027188,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"556b46f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1215","request_time":"0.176","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"6d3d3f44076ba8a1adf21b3c4e299483"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"6d3d3f44076ba8a1adf21b3c4e299483","responseTime":171,"status":201,"url":"/experiments?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling 200 19ms","method":"POST","requestID":"556b46f0-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"52692a1a-fa6f-4498-af17-1b3f778c79e3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7017584} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":715,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.225972,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"c7bd2e663d93e460d01d02af3f88c1b2","responseTime":5,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"556d90e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} device-1 | {"level":"info","message":"POST /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling 200 18ms","method":"POST","requestID":"556d90e0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":716,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.347794,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"c7bd2e663d93e460d01d02af3f88c1b2"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"99ca35fd-7d86-493c-b9e0-3781e216a34e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7214687} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.409532513Z"}]},"request_id":"9bbf7385-6918-4499-8238-04961dde9208","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7224486} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c7bd2e663d93e460d01d02af3f88c1b2"},"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:45964","level":"info","msg":"Sent response.","req_id":717,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.06064,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5570c530-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.034","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"c7bd2e663d93e460d01d02af3f88c1b2"} device-1 | {"level":"info","message":"GET /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a? 200 25ms","method":"GET","requestID":"c7bd2e663d93e460d01d02af3f88c1b2","responseTime":25,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling 200 19ms","method":"POST","requestID":"5570c530-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"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":"3a84afa2-845f-4557-b3e7-2037f6ae6c11"},{"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":"c29c36bc-b73a-4234-ace1-e3b873440386"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"bf62f1cc-cedb-4bd5-94a9-7de5000fbe06"}]},"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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"},{"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"b5c89bdc9d3081afb8367b8b3e6c1669","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":718,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.207321,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"557447a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":719,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.27346,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415763,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2M30.7U6XxvbVZDTkwoW5GoIB3ZBcOCva-CFBvGtUtanndrk"} 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":"b5c89bdc9d3081afb8367b8b3e6c1669"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:01.451948076Z"}]},"request_id":"cf933608-704b-441c-add1-2c81b7a4f779","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7532175} 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":"b5c89bdc9d3081afb8367b8b3e6c1669"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"4de67355-83fb-454e-89fd-c5f7ac52d6aa","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7610316} gateway-1 | {"time_local":"29/Apr/2024:18:36:03 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 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":"b5c89bdc9d3081afb8367b8b3e6c1669"} device-1 | {"level":"info","message":"GET /devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c? 200 22ms","method":"GET","requestID":"b5c89bdc9d3081afb8367b8b3e6c1669","responseTime":22,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c?"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f7e7a028-0dc7-4d7b-9d30-29f23423ef15","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.7615368} 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":"557447a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} 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/ff3ce37e-d51f-43de-9c2d-49b057aa269f'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 43ms","method":"POST","requestID":"557447a0-0657-11ef-8390-917b0c22016f","responseTime":43,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"400fdec9-fdc4-44d0-a6fe-d398aa5a665f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.819357} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":720,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.616787,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"557fb950-0657-11ef-8390-917b0c22016f"},"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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling 200 11ms","method":"POST","requestID":"557fb950-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a1e89ad9-a13e-4a76-b75c-7f9dc17a1cac","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415763.831143} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":721,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.621043,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:03Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5581b520-0657-11ef-8390-917b0c22016f"},"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling 200 9ms","method":"POST","requestID":"5581b520-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","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/ff3ce37e-d51f-43de-9c2d-49b057aa269f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"70691fc061bdafca3240ab3e588a4d90","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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"},{"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"70691fc061bdafca3240ab3e588a4d90","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.009","http_referrer":"","http_user_agent":"node-fetch","requestID":"70691fc061bdafca3240ab3e588a4d90"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","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/ff3ce37e-d51f-43de-9c2d-49b057aa269f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"4dd5485f2193f0d86ee2b1a86fae0795","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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"},{"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fff3ce37e-d51f-43de-9c2d-49b057aa269f","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"44be0277-a23c-4031-bd83-afb2e9427ceb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415764.9273322} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":722,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.585071,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5628f1a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f 200 10ms","method":"GET","requestID":"5628f1a0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 30ms","method":"POST","requestID":"4dd5485f2193f0d86ee2b1a86fae0795","responseTime":30,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.034","http_referrer":"","http_user_agent":"node-fetch","requestID":"4dd5485f2193f0d86ee2b1a86fae0795"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"546134ea-251b-4f4f-9415-386dd9b4de09","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415764.9507143} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":723,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.579506,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562c9b20-0657-11ef-8390-917b0c22016f"},"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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling 200 10ms","method":"POST","requestID":"562c9b20-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"bf49a707-c241-4b42-a5b5-c6894a6301fd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415764.9646516} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":724,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.863556,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:04Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"562e96f0-0657-11ef-8390-917b0c22016f"},"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling 200 13ms","method":"POST","requestID":"562e96f0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"fbbfefcb54513e7e6441e0fcf69ffdcc","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":725,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.137486,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"fbbfefcb54513e7e6441e0fcf69ffdcc"},"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/7ab34136-30cd-42c7-80b6-6d3287a25341"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341 HTTP/1.1","status": "200","body_bytes_sent":"1288","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"fbbfefcb54513e7e6441e0fcf69ffdcc"} experiment-1 | {"level":"info","message":"GET /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341 200 15ms","method":"GET","requestID":"fbbfefcb54513e7e6441e0fcf69ffdcc","responseTime":15,"status":200,"url":"/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"d960eb1dbb70503886b07e8b11c7bec9","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":726,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.421733,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"d960eb1dbb70503886b07e8b11c7bec9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":727,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.237589,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"563c79a0-0657-11ef-8390-917b0c22016f"},"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/ff3ce37e-d51f-43de-9c2d-49b057aa269f' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fff3ce37e-d51f-43de-9c2d-49b057aa269f': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fff3ce37e-d51f-43de-9c2d-49b057aa269f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"156f4b8b-9cd7-48ab-b0a3-16e6d46ff437","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.0741768} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"f7496240f91fb91b9c6b78231ce094a8","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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"643766f6-943b-4b7f-8dfa-f8ab309da106","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.0745828} 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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"},{"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"563c79a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b20d210f49b34f3a78385e36811709ca","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-closed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","interfaceId":1,"interfaceType":"gpio","signals":{"gpio":"gpio1"}},{"busId":"gpio2","direction":"out","interfaceId":2,"interfaceType":"gpio","signals":{"gpio":"gpio2"}}],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a"},{"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"ff3ce37e-d51f-43de-9c2d-49b057aa269f","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/ff3ce37e-d51f-43de-9c2d-49b057aa269f 204 64ms","method":"DELETE","requestID":"563c79a0-0657-11ef-8390-917b0c22016f","responseTime":64,"status":204,"url":"/peerconnections/ff3ce37e-d51f-43de-9c2d-49b057aa269f"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e92eda94-3261-4b2a-ba7b-6f0d94e62817","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.1428452} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":728,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.279487,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56499900-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling 200 16ms","method":"POST","requestID":"56499900-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ab34136-30cd-42c7-80b6-6d3287a25341': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F7ab34136-30cd-42c7-80b6-6d3287a25341","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"64ecf7e0-41a2-4456-888f-9c2cd304badc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.153574} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3292f157-f220-45ab-a737-392eb83412ee","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.1540396} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"d960eb1dbb70503886b07e8b11c7bec9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"e61fdeb6-3f6b-492b-b95e-36e02f68254d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.1630666} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":729,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.679833,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"564c7f30-0657-11ef-8390-917b0c22016f"},"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/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling 200 16ms","method":"POST","requestID":"564c7f30-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.183","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"d960eb1dbb70503886b07e8b11c7bec9"} experiment-1 | {"level":"info","message":"DELETE /experiments/7ab34136-30cd-42c7-80b6-6d3287a25341 204 180ms","method":"DELETE","requestID":"d960eb1dbb70503886b07e8b11c7bec9","responseTime":180,"status":204,"url":"/experiments/7ab34136-30cd-42c7-80b6-6d3287a25341"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2399","request_time":"3.201","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"1cf8dc65d47fd0c0cd265c6b748fbceb"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 140ms","method":"POST","requestID":"f7496240f91fb91b9c6b78231ce094a8","responseTime":140,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.145","http_referrer":"","http_user_agent":"node-fetch","requestID":"f7496240f91fb91b9c6b78231ce094a8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 139ms","method":"POST","requestID":"b20d210f49b34f3a78385e36811709ca","responseTime":139,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.144","http_referrer":"","http_user_agent":"node-fetch","requestID":"b20d210f49b34f3a78385e36811709ca"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"1236207320307308581395870aa6f3bb","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2527","request_time":"1.774","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"62f9a6a75a6bf71245d0f85ec9201ec1"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":730,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.747125,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"1236207320307308581395870aa6f3bb"},"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/21fe4ff6-8dc8-4b66-8aff-0feafbdd424a' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"44c6c002-8a13-4212-85b4-702142f706a9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.242413} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1236207320307308581395870aa6f3bb"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d6e79fe4-13bc-440e-b029-276e22e9343d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.247276} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8c9b15c2-1a00-4b9a-9e03-53cb8b52fc2c' closed"} 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":"1236207320307308581395870aa6f3bb"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"0c11cbc7-15e7-4ffb-80c7-2a91ca11b298","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.2558799} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"bfaa74a8-e39b-4b0b-bba1-ccab59077c64","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.2559402} 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":"1236207320307308581395870aa6f3bb"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"19ce7a31-7224-43a4-ba32-174ad1a4c32a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.2608492} 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":"1236207320307308581395870aa6f3bb"},"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":"29/Apr/2024:18:36:05 +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":"1236207320307308581395870aa6f3bb"} device-1 | {"level":"info","message":"POST /devices? 201 41ms","method":"POST","requestID":"1236207320307308581395870aa6f3bb","responseTime":41,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4869b9ae590469d0ce7ef579db377af9","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":731,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.702817,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"4869b9ae590469d0ce7ef579db377af9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"ec19ca67-bb71-4db3-b870-aa0ee63f78e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.283136} 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":"4869b9ae590469d0ce7ef579db377af9"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a3611231-1f1b-461f-8a7a-e0f989717387","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.287702} 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":"4869b9ae590469d0ce7ef579db377af9"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":2}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"fffb691e-3241-43b8-8894-e2e43101e66d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.3001943} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e9229e63-8042-449c-b09c-ebaebd6cc43b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.3006387} 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":"4869b9ae590469d0ce7ef579db377af9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"13f8fe0e-e99a-4161-9474-0e4c19b2d13a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.3050241} 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":"4869b9ae590469d0ce7ef579db377af9"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.043","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4869b9ae590469d0ce7ef579db377af9"} device-1 | {"level":"info","message":"POST /devices? 201 39ms","method":"POST","requestID":"4869b9ae590469d0ce7ef579db377af9","responseTime":39,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"7334de823ccacac205863a9ec9bbd2b9","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"cae19536e6fd00d1ed36520e2da9c88a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":732,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.643261,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"7334de823ccacac205863a9ec9bbd2b9"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":733,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.622486,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"cae19536e6fd00d1ed36520e2da9c88a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"4d129826-6d06-4142-946e-e571eb3fc745","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.788407} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"7334de823ccacac205863a9ec9bbd2b9"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"b8f8f7f0-eb4a-455a-94fd-3a97239b0835","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.7888887} 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":"cae19536e6fd00d1ed36520e2da9c88a"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"154aa484-6152-4302-bcc9-5d2c0b352b49","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.7933953} 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":"7334de823ccacac205863a9ec9bbd2b9"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"2b650692-45a7-47c6-b676-e6149bcf54f4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.795247} 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":"cae19536e6fd00d1ed36520e2da9c88a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"dc2bf965-de4a-4a47-ac84-8748a9e378cb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.7983851} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"cae19536e6fd00d1ed36520e2da9c88a"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"cae19536e6fd00d1ed36520e2da9c88a"} device-1 | {"level":"info","message":"PATCH /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2 200 24ms","method":"PATCH","requestID":"cae19536e6fd00d1ed36520e2da9c88a","responseTime":24,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"79a641f3f68cc5d8411fb794742aafd3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":734,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.250354,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"79a641f3f68cc5d8411fb794742aafd3"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"dfeb0d17-bbd7-4c00-a65c-72153a65cca6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.8288198} 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":"7334de823ccacac205863a9ec9bbd2b9"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/8c81bb91-9717-4184-9658-1070adada23a HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.064","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7334de823ccacac205863a9ec9bbd2b9"} device-1 | {"level":"info","message":"PATCH /devices/8c81bb91-9717-4184-9658-1070adada23a 200 56ms","method":"PATCH","requestID":"7334de823ccacac205863a9ec9bbd2b9","responseTime":56,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"c33e8907d73296c2847fe493e406e072","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/websocket 200 31ms","method":"POST","requestID":"79a641f3f68cc5d8411fb794742aafd3","responseTime":31,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.038","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"79a641f3f68cc5d8411fb794742aafd3"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":735,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.666199,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"c33e8907d73296c2847fe493e406e072"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/websocket HTTP/1.1","status": "200","body_bytes_sent":"38","request_time":"0.020","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c33e8907d73296c2847fe493e406e072"} device-1 | {"level":"info","message":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/websocket 200 14ms","method":"POST","requestID":"c33e8907d73296c2847fe493e406e072","responseTime":14,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2' connected"} device-1 | {"level":"info","message":"device 'http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"1994c7d4895326be1dd0026a5c418a20","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":736,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.651186,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"1994c7d4895326be1dd0026a5c418a20"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"f3bc229e-68e6-4b54-b0d5-a0526b85c856","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.8811848} 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":"1994c7d4895326be1dd0026a5c418a20"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.015","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1994c7d4895326be1dd0026a5c418a20"} device-1 | {"level":"info","message":"GET /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2? 200 11ms","method":"GET","requestID":"1994c7d4895326be1dd0026a5c418a20","responseTime":11,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"9b9d2fc9edbed2f2fda655d3cde86a37","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":737,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.730082,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"9b9d2fc9edbed2f2fda655d3cde86a37"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"92175c6d-c0a1-4db4-9c9d-91b0db2f5d4b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.8963585} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9b9d2fc9edbed2f2fda655d3cde86a37"},"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":"29/Apr/2024:18:36:05 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c81bb91-9717-4184-9658-1070adada23a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.017","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9b9d2fc9edbed2f2fda655d3cde86a37"} device-1 | {"level":"info","message":"GET /devices/8c81bb91-9717-4184-9658-1070adada23a? 200 13ms","method":"GET","requestID":"9b9d2fc9edbed2f2fda655d3cde86a37","responseTime":13,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"8ab3b01611f2fb7ad4678f015287c064","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:45964","level":"info","msg":"Received request.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":738,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":0.768296,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"8ab3b01611f2fb7ad4678f015287c064"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"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:45964","level":"info","msg":"Received request.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":739,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.018552,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"56c72d70-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":740,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.554161,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:05Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"56c75480-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"bcee2fe8-bb44-4c04-a89b-906556533998","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.971546} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56c72d70-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"c46312c4-1810-413d-aacb-01691160fd51","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415765.9749799} 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":"56c75480-0657-11ef-8390-917b0c22016f"},"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2? 200 19ms","method":"GET","requestID":"56c72d70-0657-11ef-8390-917b0c22016f","responseTime":19,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8c81bb91-9717-4184-9658-1070adada23a? 200 20ms","method":"GET","requestID":"56c75480-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"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:45964","level":"info","msg":"Received request.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":741,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.292735,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully running experiment"} 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":"56d31450-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":742,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.326875,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"56d38980-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ff6b60d7-1c8f-41dc-9758-2aa6dc20d7b5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.0540407} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"ee9ca455-98db-408d-a790-9fb2b1d0f632","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.0551367} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":743,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.429255,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} 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":"56d31450-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56d3feb0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"09c073e9-e019-4d64-8de6-1f602fb2363d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.057682} 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":"56d38980-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"e2bb9ff1-6c84-487a-812f-179d531a637f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.0675983} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"363c2cf6-9011-492e-86b4-566dad844ba2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.068404} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling 200 28ms","method":"POST","requestID":"56d3feb0-0657-11ef-8390-917b0c22016f","responseTime":28,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling"} 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":"8ab3b01611f2fb7ad4678f015287c064"},"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2? 200 35ms","method":"GET","requestID":"56d31450-0657-11ef-8390-917b0c22016f","responseTime":35,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/8c81bb91-9717-4184-9658-1070adada23a? 200 34ms","method":"GET","requestID":"56d38980-0657-11ef-8390-917b0c22016f","responseTime":34,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"6bfa62a8-b0ce-4d68-b4d4-083e883bae7a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.0820768} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":744,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.559893,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56d8e0b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.186","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"8ab3b01611f2fb7ad4678f015287c064"} experiment-1 | {"level":"info","message":"POST /experiments? 201 181ms","method":"POST","requestID":"8ab3b01611f2fb7ad4678f015287c064","responseTime":181,"status":201,"url":"/experiments?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c0569d9-b49d-4ac4-b84a-4917ca237e99","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.0908704} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/signaling 200 17ms","method":"POST","requestID":"56d8e0b0-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":745,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.079791,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56da1930-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"397634e9cbea14878fce6091a6c6da49","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling 200 14ms","method":"POST","requestID":"56da1930-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":746,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.873295,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"397634e9cbea14878fce6091a6c6da49"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0024c6a6-d155-425b-b58e-f47b19616ce2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1050024} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":747,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.371388,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56dc8a30-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.255845688Z"}]},"request_id":"ee004b99-9dac-4e72-925a-687039ae4ede","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1094446} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/signaling 200 11ms","method":"POST","requestID":"56dc8a30-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/signaling"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"397634e9cbea14878fce6091a6c6da49"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"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":"e620b05d-4111-4656-afdc-2899b30828af"},{"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":"1972cf29-9247-490a-8dba-83c7f08e628c"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"f8634119-f063-4310-a8cf-4a1f736ac410"}]},"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2"},{"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/8c81bb91-9717-4184-9658-1070adada23a"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"397634e9cbea14878fce6091a6c6da49"} device-1 | {"level":"info","message":"GET /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2? 200 18ms","method":"GET","requestID":"397634e9cbea14878fce6091a6c6da49","responseTime":18,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":748,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.199504,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415765,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2NX0.1Pnniv6CCyXeK9iBTsONV1bOF9mBLqr3Y1G66A-OTow"} 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":"56dead10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"894e823aa3d84549967b3a32ddba84a7","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":749,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.331031,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"894e823aa3d84549967b3a32ddba84a7"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"b4daf9d6-6730-44fa-ae5f-ffd0b5be31e4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1319811} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"e948c37b-a332-4009-b7fb-db9340d5e781","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1324112} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:05.300144972Z"}]},"request_id":"3f3b2da7-9189-4e8d-96b4-936ebab8bb17","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1336408} 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":"56dead10-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} 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":"894e823aa3d84549967b3a32ddba84a7"},"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/8c81bb91-9717-4184-9658-1070adada23a? 200 19ms","method":"GET","requestID":"894e823aa3d84549967b3a32ddba84a7","responseTime":19,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/8c81bb91-9717-4184-9658-1070adada23a? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.025","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"894e823aa3d84549967b3a32ddba84a7"} 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/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e'"} 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":"56dead10-0657-11ef-8390-917b0c22016f","responseTime":42,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"feab3bbd-5c5e-4801-ab35-de0df8690baf","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.1942859} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":750,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.856402,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56ea45d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling 200 12ms","method":"POST","requestID":"56ea45d0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"416dc5a6-35e7-4be2-8a73-4b1888284070","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.2075932} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":751,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.472756,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56ec68b0-0657-11ef-8390-917b0c22016f"},"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/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"93b0b3bd249313a8e8984a7aab1a36ce","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/48a98956-69dd-4c65-95bb-7e326c5a3ee2"},{"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/8c81bb91-9717-4184-9658-1070adada23a"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/signaling 200 13ms","method":"POST","requestID":"56ec68b0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/signaling"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 5ms","method":"POST","requestID":"93b0b3bd249313a8e8984a7aab1a36ce","responseTime":5,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.008","http_referrer":"","http_user_agent":"node-fetch","requestID":"93b0b3bd249313a8e8984a7aab1a36ce"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","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/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"091eb738be41f75b51db73b1b2c12e96","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/48a98956-69dd-4c65-95bb-7e326c5a3ee2"},{"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/8c81bb91-9717-4184-9658-1070adada23a"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7e8a8f7-268a-40cd-9d3d-e7dc6455968e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"06c70f08-3527-49f0-887b-ffc9f8c8812a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.274063} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":752,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.632315,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","object_type":"peerconnection","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"146","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56f67ad0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"GET /peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e 200 10ms","method":"GET","requestID":"56f67ad0-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 29ms","method":"POST","requestID":"091eb738be41f75b51db73b1b2c12e96","responseTime":29,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.033","http_referrer":"","http_user_agent":"node-fetch","requestID":"091eb738be41f75b51db73b1b2c12e96"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5431e0c6-1522-4cc4-bdda-53c950806f37","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.298119} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":753,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.822841,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56fa2450-0657-11ef-8390-917b0c22016f"},"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling 200 10ms","method":"POST","requestID":"56fa2450-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"9638a11a-3490-4813-bfff-091bb5bf9335","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.3102381} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":754,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.107206,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"56fbf910-0657-11ef-8390-917b0c22016f"},"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/8c81bb91-9717-4184-9658-1070adada23a/signaling 200 10ms","method":"POST","requestID":"56fbf910-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2a319c2173a274096a12557f0a03fac8","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":755,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.181488,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"2a319c2173a274096a12557f0a03fac8"},"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/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} experiment-1 | {"level":"info","message":"GET /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975 200 17ms","method":"GET","requestID":"2a319c2173a274096a12557f0a03fac8","responseTime":17,"status":200,"url":"/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975 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":"2a319c2173a274096a12557f0a03fac8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"84f65f93e6f203ce7706f0b407fe517f","responseTime":5,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":756,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.386555,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"84f65f93e6f203ce7706f0b407fe517f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":757,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.740946,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"570a50f0-0657-11ef-8390-917b0c22016f"},"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/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"b7e8a8f7-268a-40cd-9d3d-e7dc6455968e","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7e8a8f7-268a-40cd-9d3d-e7dc6455968e': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fb7e8a8f7-268a-40cd-9d3d-e7dc6455968e","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"88180af2-745b-4bee-b5c1-4c9c7b4d432d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.4360201} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8c03816f-56c5-4ae2-83f5-7a163a2a84bb","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.4365442} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/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":"090d4e74be3b5ba13d0a138e57cb5534","responseTime":2,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[{"busId":"gpio1","direction":"out","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/48a98956-69dd-4c65-95bb-7e326c5a3ee2"},{"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/8c81bb91-9717-4184-9658-1070adada23a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 15ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"570a50f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ded1b7ebee8502c88e73694f806e12e9","responseTime":3,"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2"},{"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/8c81bb91-9717-4184-9658-1070adada23a"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e 204 49ms","method":"DELETE","requestID":"570a50f0-0657-11ef-8390-917b0c22016f","responseTime":49,"status":204,"url":"/peerconnections/b7e8a8f7-268a-40cd-9d3d-e7dc6455968e"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a'"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F48a98956-69dd-4c65-95bb-7e326c5a3ee2","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"455eecb6-d7f9-4aa8-a461-55a37cc62770","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.4863563} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":758,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.237172,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"571685f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"c6ef91a9-fa75-4a90-9848-1b9ad35b731c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.4949844} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling 200 16ms","method":"POST","requestID":"571685f0-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/48a98956-69dd-4c65-95bb-7e326c5a3ee2/signaling"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"897ee6cc-ea92-4a99-b843-a1e6f3b2681f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.4954047} 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":"84f65f93e6f203ce7706f0b407fe517f"},"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:45964","level":"info","msg":"Received request.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F8c81bb91-9717-4184-9658-1070adada23a","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"22e252e3-32c3-4e67-a3b9-2074637340ee","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.5066187} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":759,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.906092,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57199330-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/8c81bb91-9717-4184-9658-1070adada23a/signaling 200 13ms","method":"POST","requestID":"57199330-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/8c81bb91-9717-4184-9658-1070adada23a/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.181","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"84f65f93e6f203ce7706f0b407fe517f"} experiment-1 | {"level":"info","message":"DELETE /experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975 204 177ms","method":"DELETE","requestID":"84f65f93e6f203ce7706f0b407fe517f","responseTime":177,"status":204,"url":"/experiments/8ad7ad90-f1a3-45a4-8dfe-4ad5155c6975"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2534","request_time":"0.717","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"0b855b3828aadb8e0f05c7f73b629146"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2532","request_time":"0.705","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"7fb9bc9784b8a00b258123f2d59fb9f6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 121ms","method":"POST","requestID":"090d4e74be3b5ba13d0a138e57cb5534","responseTime":121,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.127","http_referrer":"","http_user_agent":"node-fetch","requestID":"090d4e74be3b5ba13d0a138e57cb5534"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 119ms","method":"POST","requestID":"ded1b7ebee8502c88e73694f806e12e9","responseTime":119,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.128","http_referrer":"","http_user_agent":"node-fetch","requestID":"ded1b7ebee8502c88e73694f806e12e9"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"6684aa729eb79b8051cac216df882974","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} device-1 | {"data":{"code":1006,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/8c81bb91-9717-4184-9658-1070adada23a' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":760,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.383626,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"6684aa729eb79b8051cac216df882974"},"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/48a98956-69dd-4c65-95bb-7e326c5a3ee2' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"a7667a0f-64cc-4585-9f31-afbf33411e75","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.5906224} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"6684aa729eb79b8051cac216df882974"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"28b0c40e-5170-477c-adbc-a0b612bc1617","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.5977373} 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":"6684aa729eb79b8051cac216df882974"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"50c83a11-e5e1-4360-b738-458d0f9d7e7f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6098137} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"373ceb0b-9496-4638-a83b-a3d819ad6736","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6107068} 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":"6684aa729eb79b8051cac216df882974"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"d5bef122-b2b7-4d20-b667-837cf7fb4da6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.618276} 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":"6684aa729eb79b8051cac216df882974"},"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":"29/Apr/2024:18:36:06 +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":"6684aa729eb79b8051cac216df882974"} device-1 | {"level":"info","message":"POST /devices? 201 54ms","method":"POST","requestID":"6684aa729eb79b8051cac216df882974","responseTime":54,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"eed8f534435108622e7fd43957ccbbb4","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":761,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.917358,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:06Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415766,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2Nn0.YwTxfha4A2e5GXj9w9DucSoAYy3yYL4ti1kHuOIfvbQ"} 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":"eed8f534435108622e7fd43957ccbbb4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3ee5b89e-29ad-4268-9c50-37dbb7c67bde","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6527696} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eed8f534435108622e7fd43957ccbbb4"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"26d79eed-a0a7-46aa-ae3b-c478b69be850","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6580517} 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":"eed8f534435108622e7fd43957ccbbb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"4a6236ed-6b8f-4d23-89af-775ede033b2d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6681995} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"eb25f708-3d1c-4183-8d7c-f67b072f47d4","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6683962} 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":"eed8f534435108622e7fd43957ccbbb4"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"de6fc5c0-ab22-4280-ab6a-6d64472df525","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415766.6735606} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"eed8f534435108622e7fd43957ccbbb4"},"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":"29/Apr/2024:18:36:06 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"316","request_time":"0.053","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"eed8f534435108622e7fd43957ccbbb4"} device-1 | {"level":"info","message":"POST /devices? 201 44ms","method":"POST","requestID":"eed8f534435108622e7fd43957ccbbb4","responseTime":44,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"c0ddd21fa555fa347e2673cfde109726","responseTime":6,"status":200,"url":"/auth"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 6ms","method":"GET","requestID":"87e35c396ba7389da9841a239a58bdee","responseTime":6,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} device-1 | {"level":"info","message":"patchDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":762,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.669809,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"c0ddd21fa555fa347e2673cfde109726"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":763,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.544931,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"87e35c396ba7389da9841a239a58bdee"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"d5e6e0cf-ef45-460f-9dc0-8fc737bde6b2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1590533} 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":"c0ddd21fa555fa347e2673cfde109726"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"f83ed422-fac2-4405-88ae-a6776e39e2fe","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1596966} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87e35c396ba7389da9841a239a58bdee"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ed6a1418-1d9b-4ff7-8dee-4f45ca7f6fd1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1646557} 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":"c0ddd21fa555fa347e2673cfde109726"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"c1c34c9e-ba3a-47c9-96ac-2c90d893c672","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1674995} 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":"87e35c396ba7389da9841a239a58bdee"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"379791e2-b151-4977-81a1-665c237004d2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1702647} authorization-1 | {"level":"info","message":"POST /relations/query 200 1ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"87e35c396ba7389da9841a239a58bdee"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":1}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/a2c3071e-5135-40f9-ae4d-a86f71537477 HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.034","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"87e35c396ba7389da9841a239a58bdee"} device-1 | {"level":"info","message":"PATCH /devices/a2c3071e-5135-40f9-ae4d-a86f71537477 200 23ms","method":"PATCH","requestID":"87e35c396ba7389da9841a239a58bdee","responseTime":23,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"900c64795e80901f7f5a48fa819405cf","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":764,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.998812,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"900c64795e80901f7f5a48fa819405cf"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"2ef82caf-54dd-4bfb-a130-fdbe54cc0dd8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.1966841} 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":"c0ddd21fa555fa347e2673cfde109726"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"patchDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"PATCH /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c 200 52ms","method":"PATCH","requestID":"c0ddd21fa555fa347e2673cfde109726","responseTime":52,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"PATCH /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c HTTP/1.1","status": "200","body_bytes_sent":"1087","request_time":"0.061","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"c0ddd21fa555fa347e2673cfde109726"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a2c3071e-5135-40f9-ae4d-a86f71537477/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":"900c64795e80901f7f5a48fa819405cf"} device-1 | {"level":"info","message":"POST /devices/a2c3071e-5135-40f9-ae4d-a86f71537477/websocket 200 28ms","method":"POST","requestID":"900c64795e80901f7f5a48fa819405cf","responseTime":28,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/websocket"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"49096797d31bba88fea19d1763ea1082","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":765,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.991075,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"49096797d31bba88fea19d1763ea1082"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"device 'http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/websocket 200 25ms","method":"POST","requestID":"49096797d31bba88fea19d1763ea1082","responseTime":25,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/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":"49096797d31bba88fea19d1763ea1082"} device-1 | {"level":"info","message":"device 'http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"1248cf0d29ca22bc78a1e29366a61dea","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":766,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.790876,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"1248cf0d29ca22bc78a1e29366a61dea"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"3f4f2c2d-14f5-4a57-bfa4-3c3e7332dd3f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.2622857} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"1248cf0d29ca22bc78a1e29366a61dea"},"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/a2c3071e-5135-40f9-ae4d-a86f71537477? 200 15ms","method":"GET","requestID":"1248cf0d29ca22bc78a1e29366a61dea","responseTime":15,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a2c3071e-5135-40f9-ae4d-a86f71537477? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.020","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"1248cf0d29ca22bc78a1e29366a61dea"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"e549815d82707abb8e06fabe31dd0e7c","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":767,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.205175,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"e549815d82707abb8e06fabe31dd0e7c"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"565a5656-34a8-43c8-8fa2-5c10906d88be","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.286561} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"e549815d82707abb8e06fabe31dd0e7c"},"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":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.024","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e549815d82707abb8e06fabe31dd0e7c"} device-1 | {"level":"info","message":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? 200 18ms","method":"GET","requestID":"e549815d82707abb8e06fabe31dd0e7c","responseTime":18,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4e170deedbe1b73d86169a15e10acfb4","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:45964","level":"info","msg":"Received request.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":768,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.204806,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"4e170deedbe1b73d86169a15e10acfb4"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"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:45964","level":"info","msg":"Received request.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":769,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":2.253184,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"579c09a0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":770,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.280449,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"579c57c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"1dbd9e38-ca45-4593-b2e0-61ba9ef1cd56","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.3670657} 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":"579c09a0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"fdbbde5b-b82e-4ea9-b750-afa9de6c57df","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.3701506} 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":"579c57c0-0657-11ef-8390-917b0c22016f"},"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/a2c3071e-5135-40f9-ae4d-a86f71537477? 200 24ms","method":"GET","requestID":"579c09a0-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? 200 23ms","method":"GET","requestID":"579c57c0-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"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/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully running experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":771,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.295882,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"57a7c970-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":772,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.421143,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"57a81790-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"1c5862b1-37dd-410c-b5ce-43ceee1a8c8b","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4427478} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":773,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.195589,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57a83ea0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"cfacf921-99a8-4b9f-a5e6-8a5074d4e476","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4460542} 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":"57a7c970-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"b09d486f-4cc5-490f-8b19-0f5c0eccebb9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4497225} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57a81790-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling 200 18ms","method":"POST","requestID":"57a83ea0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa544679f-0c61-46e1-b01a-e8323aef934f#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa544679f-0c61-46e1-b01a-e8323aef934f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"27faa82b-c8e8-4f87-960e-57f0ed82e85d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4546607} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"1bcdddbf-e9b1-4262-b7de-e64a6f7c4785","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4551685} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"4e170deedbe1b73d86169a15e10acfb4"},"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:45964","level":"info","msg":"Received request.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a2c3071e-5135-40f9-ae4d-a86f71537477? 200 29ms","method":"GET","requestID":"57a7c970-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a770d687-0fea-43a2-ac52-d8e35d0b11f8","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4615655} device-1 | {"level":"info","message":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? 200 29ms","method":"GET","requestID":"57a81790-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":774,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.379552,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57ab9a00-0657-11ef-8390-917b0c22016f"},"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling 200 13ms","method":"POST","requestID":"57ab9a00-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1219","request_time":"0.178","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4e170deedbe1b73d86169a15e10acfb4"} experiment-1 | {"level":"info","message":"POST /experiments? 201 171ms","method":"POST","requestID":"4e170deedbe1b73d86169a15e10acfb4","responseTime":171,"status":201,"url":"/experiments?"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d26701d3-9860-4aa6-ae1c-3af4c7852cae","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4763572} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":775,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.19767,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57adbce0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f6b561138b55c59807cd8c80edf282c8","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} device-1 | {"level":"info","message":"POST /devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling 200 15ms","method":"POST","requestID":"57adbce0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":776,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.065351,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"444","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"f6b561138b55c59807cd8c80edf282c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"40932dba-4b67-4890-8d34-a9a1cd262a4f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.493164} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.609767726Z"}]},"request_id":"f55b603b-ea76-4c89-869f-5b3316df3a74","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.4939191} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":777,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.207539,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} 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":"f6b561138b55c59807cd8c80edf282c8"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57b07c00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a2c3071e-5135-40f9-ae4d-a86f71537477? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.027","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f6b561138b55c59807cd8c80edf282c8"} device-1 | {"level":"info","message":"GET /devices/a2c3071e-5135-40f9-ae4d-a86f71537477? 200 18ms","method":"GET","requestID":"f6b561138b55c59807cd8c80edf282c8","responseTime":18,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling 200 13ms","method":"POST","requestID":"57b07c00-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"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":"9a1cbd11-4bbc-4c67-96f6-cab845e3ab40"},{"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":"f30f4ea8-4fda-41f0-bb2f-d8b2aa333480"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"416eb2ef-7ddb-4e85-9ee8-63a2ae572bf0"}]},"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/a2c3071e-5135-40f9-ae4d-a86f71537477"},{"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"a60fd3dd33f3d0ad2a683fd1da3f0597","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":778,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":0.885589,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"57b2ed00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":779,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.696085,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"a60fd3dd33f3d0ad2a683fd1da3f0597"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:06.668173174Z"}]},"request_id":"28b5f248-6c0a-418a-81cd-9b3e133dbde1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.517353} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"a60fd3dd33f3d0ad2a683fd1da3f0597"},"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":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? HTTP/1.1","status": "200","body_bytes_sent":"1086","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"a60fd3dd33f3d0ad2a683fd1da3f0597"} device-1 | {"level":"info","message":"GET /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c? 200 14ms","method":"GET","requestID":"a60fd3dd33f3d0ad2a683fd1da3f0597","responseTime":14,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"31a98da8-4dbb-422e-8185-47c3c34c2736","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.521639} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"4926be3a-2b3e-43a5-a2b9-10e05c769666","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.5220509} 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":"57b2ed00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/da122d4f-388e-46c1-a80d-c8bec44f19e6'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6'"} 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":"57b2ed00-0657-11ef-8390-917b0c22016f","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"new","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"ae4d1559-6259-4fd2-92b6-3772288ac098","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.5795922} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":780,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.207997,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57bd9b60-0657-11ef-8390-917b0c22016f"},"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/da122d4f-388e-46c1-a80d-c8bec44f19e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling 200 15ms","method":"POST","requestID":"57bd9b60-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"27d7b249647b6bd97a7d9cc18de5be2a","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/a2c3071e-5135-40f9-ae4d-a86f71537477"},{"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a4a21140-30fa-4560-a4ff-e0f698637478","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.596039} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":781,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.668286,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"27d7b249647b6bd97a7d9cc18de5be2a","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.010","http_referrer":"","http_user_agent":"node-fetch","requestID":"27d7b249647b6bd97a7d9cc18de5be2a"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57c03370-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling 200 11ms","method":"POST","requestID":"57c03370-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","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/da122d4f-388e-46c1-a80d-c8bec44f19e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"a1a375e3c25be7bfeeeed11313bdd368","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/a2c3071e-5135-40f9-ae4d-a86f71537477"},{"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda122d4f-388e-46c1-a80d-c8bec44f19e6","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"f16d5dc8-7cf1-4d75-813b-054096bf6e0a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.6445682} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":782,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":2.356581,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6","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":"57c7ad80-0657-11ef-8390-917b0c22016f"},"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/da122d4f-388e-46c1-a80d-c8bec44f19e6 200 8ms","method":"GET","requestID":"57c7ad80-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 25ms","method":"POST","requestID":"a1a375e3c25be7bfeeeed11313bdd368","responseTime":25,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.028","http_referrer":"","http_user_agent":"node-fetch","requestID":"a1a375e3c25be7bfeeeed11313bdd368"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"82cb12be-ce72-441c-bc9d-f1adcb5791e0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.6666975} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":783,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.955385,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57cb08e0-0657-11ef-8390-917b0c22016f"},"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/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling 200 9ms","method":"POST","requestID":"57cb08e0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4291e68d-5564-447a-be64-0fb502184ec6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.6776512} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":784,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.576513,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57ccb690-0657-11ef-8390-917b0c22016f"},"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling 200 9ms","method":"POST","requestID":"57ccb690-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"f4860b1970dea2e6e162abaccc7a0d52","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/a544679f-0c61-46e1-b01a-e8323aef934f"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":785,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.19045,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"f4860b1970dea2e6e162abaccc7a0d52"},"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/a544679f-0c61-46e1-b01a-e8323aef934f"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/a544679f-0c61-46e1-b01a-e8323aef934f HTTP/1.1","status": "200","body_bytes_sent":"1292","request_time":"0.021","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"f4860b1970dea2e6e162abaccc7a0d52"} experiment-1 | {"level":"info","message":"GET /experiments/a544679f-0c61-46e1-b01a-e8323aef934f 200 15ms","method":"GET","requestID":"f4860b1970dea2e6e162abaccc7a0d52","responseTime":15,"status":200,"url":"/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"fe3291b19f847985b476acf63051bf35","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/a544679f-0c61-46e1-b01a-e8323aef934f"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":786,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.223852,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"fe3291b19f847985b476acf63051bf35"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":787,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.440056,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"57db3580-0657-11ef-8390-917b0c22016f"},"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/da122d4f-388e-46c1-a80d-c8bec44f19e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"b5f26dcd6d0e30c1f18bf63aadbb142a","responseTime":1,"status":200,"url":"/auth"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"be78fb38cfc06bd15ae4407a4bc816e2","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":"closed","url":"http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477"},{"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"}}},"level":"info","message":"received a callback"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda122d4f-388e-46c1-a80d-c8bec44f19e6': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fda122d4f-388e-46c1-a80d-c8bec44f19e6","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"43c9a8d6-e623-47ec-abfc-3d76f7a1f7b9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.7956393} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0b5f1f18-f1d3-46bc-a30b-d69503f33ecc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.7962782} 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/a2c3071e-5135-40f9-ae4d-a86f71537477"},{"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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"}}},"level":"info","message":"received a callback"} authorization-1 | {"level":"info","message":"POST /relations/update 200 14ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57db3580-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":14}} device-1 | {"data":{"peerconnection":"da122d4f-388e-46c1-a80d-c8bec44f19e6","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/da122d4f-388e-46c1-a80d-c8bec44f19e6 204 54ms","method":"DELETE","requestID":"57db3580-0657-11ef-8390-917b0c22016f","responseTime":54,"status":204,"url":"/peerconnections/da122d4f-388e-46c1-a80d-c8bec44f19e6"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa2c3071e-5135-40f9-ae4d-a86f71537477","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"474fa88e-ed06-444e-9af5-a785366d6dc6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.8503299} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":788,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.016085,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a2c3071e-5135-40f9-ae4d-a86f71537477","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57e6ce40-0657-11ef-8390-917b0c22016f"},"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/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling 200 14ms","method":"POST","requestID":"57e6ce40-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/a2c3071e-5135-40f9-ae4d-a86f71537477/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa544679f-0c61-46e1-b01a-e8323aef934f': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Fa544679f-0c61-46e1-b01a-e8323aef934f","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"09cb2a78-1fc7-4d0d-8de0-9b87ff01ce25","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.8642204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0928da7d-e0e4-49cc-a0f0-1701c6ef3757","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.8647578} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} 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":"fe3291b19f847985b476acf63051bf35"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":24}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8470863b-a98f-49ad-a450-36d3ee5a174d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.8707802} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":789,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":6.583193,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 10ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"57e96650-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":10}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling 200 17ms","method":"POST","requestID":"57e96650-0657-11ef-8390-917b0c22016f","responseTime":17,"status":200,"url":"/devices/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/a544679f-0c61-46e1-b01a-e8323aef934f"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/a544679f-0c61-46e1-b01a-e8323aef934f 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":"fe3291b19f847985b476acf63051bf35"} experiment-1 | {"level":"info","message":"DELETE /experiments/a544679f-0c61-46e1-b01a-e8323aef934f 204 174ms","method":"DELETE","requestID":"fe3291b19f847985b476acf63051bf35","responseTime":174,"status":204,"url":"/experiments/a544679f-0c61-46e1-b01a-e8323aef934f"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2534","request_time":"0.719","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"d1df97cef0616e070efbccc8e84961ee"} gateway-1 | {"time_local":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2532","request_time":"0.693","http_referrer":"","http_user_agent":"Python/3.10 aiohttp/3.9.5","requestID":"82a2f469bc701ed5b4bd2a412388614f"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"b5f26dcd6d0e30c1f18bf63aadbb142a","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"b5f26dcd6d0e30c1f18bf63aadbb142a"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 134ms","method":"POST","requestID":"be78fb38cfc06bd15ae4407a4bc816e2","responseTime":134,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"be78fb38cfc06bd15ae4407a4bc816e2"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"bf9731c8d4c7b2a615be677a5f332f73","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/86bf5f4f-6aef-44a3-96f4-71ee3ba2341c' closed"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":790,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.919941,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"bf9731c8d4c7b2a615be677a5f332f73"},"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/a2c3071e-5135-40f9-ae4d-a86f71537477' 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"9ca07866-87d3-448d-9870-78aab0402498","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.9548354} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf9731c8d4c7b2a615be677a5f332f73"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d983883c-a423-4ac1-8789-117c3d7db4cd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.9609919} 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":"bf9731c8d4c7b2a615be677a5f332f73"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"8bf88d03-faa3-4981-8c40-0260f97ee0f3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.9723463} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"788b8bf1-7ae1-4d3e-aa5c-472967555cc6","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.9725156} 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":"bf9731c8d4c7b2a615be677a5f332f73"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:07.972313035Z"}]},"request_id":"7d6711ea-d33e-48d0-af89-ed6d839ca499","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415767.9780457} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"bf9731c8d4c7b2a615be677a5f332f73"},"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":"29/Apr/2024:18:36:07 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.052","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"bf9731c8d4c7b2a615be677a5f332f73"} device-1 | {"level":"info","message":"POST /devices? 201 46ms","method":"POST","requestID":"bf9731c8d4c7b2a615be677a5f332f73","responseTime":46,"status":201,"url":"/devices?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"9a67be8e23210a7393e5261f26a49621","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":791,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.774605,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:07Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415767,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2N30.FzQiTDqqnr2lbuNWCB29Rp9Po8GswtauvG3cAUL8wIE"} 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":"9a67be8e23210a7393e5261f26a49621"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"3c526012-a95c-4c67-8b57-8fd4243126ef","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415768.0061877} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9a67be8e23210a7393e5261f26a49621"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f68b32c6-4c30-4d24-bc87-3a86ff1ba6de","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415768.011248} 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":"9a67be8e23210a7393e5261f26a49621"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"19719a15-1a6a-4900-b5cb-52d0c2fe50f3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415768.0220206} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"b8aecb22-8ca8-4088-af38-0017feb0c1e3","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415768.0223086} 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":"9a67be8e23210a7393e5261f26a49621"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:08.021967711Z"}]},"request_id":"718c6b0b-99da-4e1b-9bcc-4a23bc7c8031","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415768.0282772} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"9a67be8e23210a7393e5261f26a49621"},"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 44ms","method":"POST","requestID":"9a67be8e23210a7393e5261f26a49621","responseTime":44,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:08 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"308","request_time":"0.049","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"9a67be8e23210a7393e5261f26a49621"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"c51787342872302088c0ee3d793e9789","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:36:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/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":"c51787342872302088c0ee3d793e9789"} device-1 | {"level":"info","message":"OPTIONS /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/websocket 200 1ms","method":"OPTIONS","requestID":"c51787342872302088c0ee3d793e9789","responseTime":1,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2OX0.JT8VAW0ey3GDxjof3CETE9PNMavYBTHA2M2r5rK-2Gc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"5e8c21a421a85a338d0561543b53a4e1","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:09Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":792,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.248388,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415769,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2OX0.JT8VAW0ey3GDxjof3CETE9PNMavYBTHA2M2r5rK-2Gc"} 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":"5e8c21a421a85a338d0561543b53a4e1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"e48975244b801798561361d4bdd87b57","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:36:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/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":"e48975244b801798561361d4bdd87b57"} device-1 | {"level":"info","message":"OPTIONS /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/websocket 200 1ms","method":"OPTIONS","requestID":"e48975244b801798561361d4bdd87b57","responseTime":1,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/websocket"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:09 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/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":"5e8c21a421a85a338d0561543b53a4e1"} device-1 | {"level":"info","message":"POST /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/websocket 200 32ms","method":"POST","requestID":"5e8c21a421a85a338d0561543b53a4e1","responseTime":32,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2OX0.JT8VAW0ey3GDxjof3CETE9PNMavYBTHA2M2r5rK-2Gc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"b4b4671ba63a6dd98a59304af7815364","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:09Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":793,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.32891,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:09Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415769,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc2OX0.JT8VAW0ey3GDxjof3CETE9PNMavYBTHA2M2r5rK-2Gc"} 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":"b4b4671ba63a6dd98a59304af7815364"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"level":"info","message":"device 'http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e' connected"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/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":"b4b4671ba63a6dd98a59304af7815364"} device-1 | {"level":"info","message":"POST /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/websocket 200 31ms","method":"POST","requestID":"b4b4671ba63a6dd98a59304af7815364","responseTime":31,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/websocket"} device-1 | {"level":"info","message":"device 'http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"6a4e0278ff207d16c5daed902d5e50a6","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":794,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.174173,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"6a4e0278ff207d16c5daed902d5e50a6"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:07.972313035Z"}]},"request_id":"2131ba1c-645a-41bc-b226-348df1ff1859","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.0665877} 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":"6a4e0278ff207d16c5daed902d5e50a6"},"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/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 200 18ms","method":"GET","requestID":"6a4e0278ff207d16c5daed902d5e50a6","responseTime":18,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 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":"6a4e0278ff207d16c5daed902d5e50a6"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"bc940f934e3646e763b9dd1aef447e61","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":795,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.179147,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"bc940f934e3646e763b9dd1aef447e61"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:08.021967711Z"}]},"request_id":"7fe89629-ccd2-4ce9-b302-3a674fb8a28e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.0921674} 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":"bc940f934e3646e763b9dd1aef447e61"},"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":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 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":"bc940f934e3646e763b9dd1aef447e61"} device-1 | {"level":"info","message":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 200 18ms","method":"GET","requestID":"bc940f934e3646e763b9dd1aef447e61","responseTime":18,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"4ab370c48908ad20dbb22741415167e0","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:45964","level":"info","msg":"Received request.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":796,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.258897,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"4ab370c48908ad20dbb22741415167e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"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:45964","level":"info","msg":"Received request.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":797,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.108082,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"59463730-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":798,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.134049,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"5946ac60-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:07.972313035Z"}]},"request_id":"39751963-5942-4388-b6f2-1c4a5fd5d62d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.1613884} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59463730-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:08.021967711Z"}]},"request_id":"0f0b7feb-f7b8-4d00-afae-ac3dc3c15c0f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.1652205} 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":"5946ac60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"GET /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 200 20ms","method":"GET","requestID":"59463730-0657-11ef-8390-917b0c22016f","responseTime":20,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 200 23ms","method":"GET","requestID":"5946ac60-0657-11ef-8390-917b0c22016f","responseTime":23,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to instantiate devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully set up experiment"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":799,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.161061,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"59529340-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":800,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.857889,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"5952ba50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"b4b38549-2dda-4526-aafd-072f3df4a32c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2390466} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":801,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.5494,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59530870-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:07.972313035Z"}]},"request_id":"a43e93df-49a7-429c-9191-3e993e7a5801","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2420933} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Read","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:08.021967711Z"}]},"request_id":"ef90af0e-2c0f-4bdb-b019-db7765fd268c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.243884} 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":"59529340-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":6}} 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":"5952ba50-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff224ba98-9b93-4834-a0f0-7e0c6c0ca213#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff224ba98-9b93-4834-a0f0-7e0c6c0ca213","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"446eb8d9-8619-4240-9427-b2958b1f4154","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2502267} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3186ed97-8727-4c0d-abee-867701fa8f3d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2509198} 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":"4ab370c48908ad20dbb22741415167e0"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":15}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling 200 24ms","method":"POST","requestID":"59530870-0657-11ef-8390-917b0c22016f","responseTime":24,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 200 29ms","method":"GET","requestID":"59529340-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 200 29ms","method":"GET","requestID":"5952ba50-0657-11ef-8390-917b0c22016f","responseTime":29,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5862f3f8-e237-497d-84cf-ea0a52d17bf1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2667847} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} experiment-1 | {"data":{"experiment":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":802,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.604324,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"807","request_time":"0.166","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4ab370c48908ad20dbb22741415167e0"} experiment-1 | {"level":"info","message":"POST /experiments? 201 161ms","method":"POST","requestID":"4ab370c48908ad20dbb22741415167e0","responseTime":161,"status":201,"url":"/experiments?"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59577540-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling 200 14ms","method":"POST","requestID":"59577540-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fc8d4a12fdb5632ac7d3aef60f217673","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"2065aa04-bf56-4282-854c-0f70c24a8952","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2768168} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":803,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":5.804028,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 11ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"595886b0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":11}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":804,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.970731,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} device-1 | {"level":"info","message":"POST /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling 200 18ms","method":"POST","requestID":"595886b0-0657-11ef-8390-917b0c22016f","responseTime":18,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling"} 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":"fc8d4a12fdb5632ac7d3aef60f217673"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling 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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:07.972313035Z"}]},"request_id":"d016be21-97f7-424b-9f7d-0bc74a58f259","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2898066} 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":"fc8d4a12fdb5632ac7d3aef60f217673"},"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:45964","level":"info","msg":"Received request.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"cf66bcca-cc62-4a59-aea7-a94f0ba0371c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.2928898} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":805,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.21039,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 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":"fc8d4a12fdb5632ac7d3aef60f217673"} device-1 | {"level":"info","message":"GET /devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e? 200 19ms","method":"GET","requestID":"fc8d4a12fdb5632ac7d3aef60f217673","responseTime":19,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e?"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"595bbb00-0657-11ef-8390-917b0c22016f"},"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/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling 200 11ms","method":"POST","requestID":"595bbb00-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"205eb59b-b798-469e-84a1-b3bfced27160"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"83dacb9c-c0b6-4757-bcf6-b43079ca477b"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"e285ff44-65fa-4d83-a1f1-f7e5ca8d13bb"}]},"level":"info","message":"Built pairwise service configurations"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} experiment-1 | {"data":{"connectionPlan":[{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"44e739941d1977841a7fa750110a7f33","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postPeerconnections called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":806,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":1.073383,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"595db6d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":807,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.811142,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"44e739941d1977841a7fa750110a7f33"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:08.021967711Z"}]},"request_id":"05d2f593-258d-4b5b-8c03-4f257539f6cd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.3112924} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"44e739941d1977841a7fa750110a7f33"},"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":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 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":"44e739941d1977841a7fa750110a7f33"} device-1 | {"level":"info","message":"GET /devices/2f14856c-52cb-40fb-866b-56ad7eb94a47? 200 12ms","method":"GET","requestID":"44e739941d1977841a7fa750110a7f33","responseTime":12,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"f45a40d2-92b2-4c78-8bde-b379c1dbed22","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.3155007} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"3f3b392e-333b-4673-82d6-ad7c614c0f97","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.315818} 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":"595db6d0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"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/6a761946-843e-40fa-8893-72deb2dc9ef5'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5'"} 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":"595db6d0-0657-11ef-8390-917b0c22016f","responseTime":38,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"589e56b0-3aca-49d2-a9d6-046693fc4351","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.3750143} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":808,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.223961,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59683e20-0657-11ef-8390-917b0c22016f"},"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/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling 200 10ms","method":"POST","requestID":"59683e20-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5d737d62-5a21-4c9a-be0e-5c7695800c11","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.3864567} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":809,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.613846,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"596a12e0-0657-11ef-8390-917b0c22016f"},"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/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling 200 9ms","method":"POST","requestID":"596a12e0-0657-11ef-8390-917b0c22016f","responseTime":9,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"5d447c97a3527d92f6e5853426e08977","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/2f14856c-52cb-40fb-866b-56ad7eb94a47"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 6ms","method":"POST","requestID":"5d447c97a3527d92f6e5853426e08977","responseTime":6,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.012","http_referrer":"","http_user_agent":"node-fetch","requestID":"5d447c97a3527d92f6e5853426e08977"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","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/6a761946-843e-40fa-8893-72deb2dc9ef5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"603a0da2c1dcd97de0c9c42eed0ab26b","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/2f14856c-52cb-40fb-866b-56ad7eb94a47"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a761946-843e-40fa-8893-72deb2dc9ef5","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"452a0576-fa5e-4313-b850-f37793240b4e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.6274722} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":810,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.736192,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5","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":"598e8ad0-0657-11ef-8390-917b0c22016f"},"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/6a761946-843e-40fa-8893-72deb2dc9ef5 200 11ms","method":"GET","requestID":"598e8ad0-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 45ms","method":"POST","requestID":"603a0da2c1dcd97de0c9c42eed0ab26b","responseTime":45,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.049","http_referrer":"","http_user_agent":"node-fetch","requestID":"603a0da2c1dcd97de0c9c42eed0ab26b"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"0b809c80-1829-4397-a052-f31a53666b97","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.6652582} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":811,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.468995,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59947e40-0657-11ef-8390-917b0c22016f"},"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/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling 200 10ms","method":"POST","requestID":"59947e40-0657-11ef-8390-917b0c22016f","responseTime":10,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"d853bd36-935b-43ef-b09a-140ad31c9d81","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.6784496} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":812,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.327821,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59967a10-0657-11ef-8390-917b0c22016f"},"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/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling 200 11ms","method":"POST","requestID":"59967a10-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"4cc7fbad2156ce953b824b21e41f32b1","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":813,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.382883,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"4cc7fbad2156ce953b824b21e41f32b1"},"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/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} experiment-1 | {"level":"info","message":"GET /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213 200 18ms","method":"GET","requestID":"4cc7fbad2156ce953b824b21e41f32b1","responseTime":18,"status":200,"url":"/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213 HTTP/1.1","status": "200","body_bytes_sent":"880","request_time":"0.022","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"4cc7fbad2156ce953b824b21e41f32b1"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"8b45624b01e42895a7e9e38be23de75f","responseTime":2,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":814,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":2.10681,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"8b45624b01e42895a7e9e38be23de75f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":815,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.46472,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"59a12870-0657-11ef-8390-917b0c22016f"},"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/6a761946-843e-40fa-8893-72deb2dc9ef5' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a761946-843e-40fa-8893-72deb2dc9ef5': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F6a761946-843e-40fa-8893-72deb2dc9ef5","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"030ed0be-25a1-4510-a2a1-28bb169d0c54","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.7594757} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"5c1effbf-14ad-41d2-9852-ebfd2721b85a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.7598321} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"6dc28ca131cfdf5d70dddf70e669cd53","responseTime":1,"status":200,"url":"/auth"} authorization-1 | {"level":"info","message":"POST /relations/update 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"210","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59a12870-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} 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/2f14856c-52cb-40fb-866b-56ad7eb94a47"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"64d03da55206cef45afabd4a302de5de","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/2f14856c-52cb-40fb-866b-56ad7eb94a47"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"}}},"level":"info","message":"received a callback"} device-1 | {"data":{"peerconnection":"6a761946-843e-40fa-8893-72deb2dc9ef5","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/6a761946-843e-40fa-8893-72deb2dc9ef5 204 46ms","method":"DELETE","requestID":"59a12870-0657-11ef-8390-917b0c22016f","responseTime":46,"status":204,"url":"/peerconnections/6a761946-843e-40fa-8893-72deb2dc9ef5"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F2f14856c-52cb-40fb-866b-56ad7eb94a47","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"c1e5b69e-c6c3-48a3-bc19-9b440390354f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.8181999} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":816,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.192259,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59ab88b0-0657-11ef-8390-917b0c22016f"},"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/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling 200 14ms","method":"POST","requestID":"59ab88b0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff224ba98-9b93-4834-a0f0-7e0c6c0ca213': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2Ff224ba98-9b93-4834-a0f0-7e0c6c0ca213","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"c89ef2c3-278a-48db-badf-e69de391202e","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.8296204} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"21129f51-61b6-414e-9ae8-34a550c5e710","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.8303967} 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":"8b45624b01e42895a7e9e38be23de75f"},"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:45964","level":"info","msg":"Received request.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fd41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5b6294b7-edba-43ea-b6cd-81cde3e15248","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.8360543} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":817,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.505091,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"59ae47d0-0657-11ef-8390-917b0c22016f"},"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/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling 200 15ms","method":"POST","requestID":"59ae47d0-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e/signaling"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213 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":"8b45624b01e42895a7e9e38be23de75f"} experiment-1 | {"level":"info","message":"DELETE /experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213 204 168ms","method":"DELETE","requestID":"8b45624b01e42895a7e9e38be23de75f","responseTime":168,"status":204,"url":"/experiments/f224ba98-9b93-4834-a0f0-7e0c6c0ca213"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 136ms","method":"POST","requestID":"6dc28ca131cfdf5d70dddf70e669cd53","responseTime":136,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.139","http_referrer":"","http_user_agent":"node-fetch","requestID":"6dc28ca131cfdf5d70dddf70e669cd53"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 135ms","method":"POST","requestID":"64d03da55206cef45afabd4a302de5de","responseTime":135,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.140","http_referrer":"","http_user_agent":"node-fetch","requestID":"64d03da55206cef45afabd4a302de5de"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"030159695614ff2282a818f7239c566a","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":818,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":1.14888,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2062","request_time":"0.917","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"30edb66c2ed4e7dee9d26695e66c5e02"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2195","request_time":"0.880","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"67ee51304ff4a3a7c13e16533d396470"} 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":"030159695614ff2282a818f7239c566a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"aa79adbc-633a-4f1f-a8d4-b3a7add0f779","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9207654} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/d41cb55e-a3cb-42eb-9d4c-cd2f28009f5e' closed"} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"030159695614ff2282a818f7239c566a"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"32bdc902-1ca0-464a-bd3d-c90ad870818a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9254777} 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":"030159695614ff2282a818f7239c566a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/2f14856c-52cb-40fb-866b-56ad7eb94a47' closed"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"73058275-e46c-4584-af1e-15d62f46dc5a","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.934673} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"f5648493-5090-4be1-b9dc-1d070e7e6b82","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9347625} 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":"030159695614ff2282a818f7239c566a"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.934646022Z"}]},"request_id":"5811577c-42b8-41fb-bb7e-537b4f0494c9","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9385998} 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":"030159695614ff2282a818f7239c566a"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 38ms","method":"POST","requestID":"030159695614ff2282a818f7239c566a","responseTime":38,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:10 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices? HTTP/1.1","status": "201","body_bytes_sent":"315","request_time":"0.044","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"030159695614ff2282a818f7239c566a"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"e0fb4d0857f82980f18be2d49003426d","responseTime":2,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevices called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":819,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":599,"resp_duration":0.718337,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:10Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"device:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:~~~TYPE~~~","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415770,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3MH0.-vjUQRRorDaFoB7RLGbS2XoINE3iyWbeNiFhdB6EiKM"} 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":"e0fb4d0857f82980f18be2d49003426d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[]},"request_id":"4e0d03ad-f57a-4f24-bf7b-939d67ebbf84","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9633634} 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":"e0fb4d0857f82980f18be2d49003426d"},"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:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"ff03942b-ddf1-4440-ad93-8f97fa5c0c42","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9672306} 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":"e0fb4d0857f82980f18be2d49003426d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"79b9db8e-d58d-4c60-9afa-c985a81f198d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9770374} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d9fd3c27-d592-451f-afc9-f3e8e9cde94c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9771545} 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":"e0fb4d0857f82980f18be2d49003426d"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"9ce4856d-ca0c-45f0-a2ef-41cd40e88259","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415770.9808397} 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":"e0fb4d0857f82980f18be2d49003426d"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":2}} device-1 | {"level":"info","message":"postDevices succeeded"} device-1 | {"level":"info","message":"POST /devices? 201 37ms","method":"POST","requestID":"e0fb4d0857f82980f18be2d49003426d","responseTime":37,"status":201,"url":"/devices?"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.041","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"e0fb4d0857f82980f18be2d49003426d"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dcf71fe950869a050309c0ec230ebc83","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:36:12 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/906b25ed-7382-4d5c-9a98-b153d86926f8/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":"dcf71fe950869a050309c0ec230ebc83"} device-1 | {"level":"info","message":"OPTIONS /devices/906b25ed-7382-4d5c-9a98-b153d86926f8/websocket 200 1ms","method":"OPTIONS","requestID":"dcf71fe950869a050309c0ec230ebc83","responseTime":1,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3Mn0.r17RJ6KXFhYAbK9DBwoWPQJCzmQ7UtuQnJo8XGP_Q58","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"358f2dc41b3a0b1165c12caf841554ca","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:12Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":820,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.839962,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:12Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415772,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3Mn0.r17RJ6KXFhYAbK9DBwoWPQJCzmQ7UtuQnJo8XGP_Q58"} 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":"358f2dc41b3a0b1165c12caf841554ca"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket succeeded"} device-1 | {"level":"info","message":"POST /devices/906b25ed-7382-4d5c-9a98-b153d86926f8/websocket 200 24ms","method":"POST","requestID":"358f2dc41b3a0b1165c12caf841554ca","responseTime":24,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/websocket"} gateway-1 | {"time_local":"29/Apr/2024:18:36:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/906b25ed-7382-4d5c-9a98-b153d86926f8/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":"358f2dc41b3a0b1165c12caf841554ca"} device-1 | {"level":"info","message":"device 'http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8' connected"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"04d48787b5abb8ec6f7273d486d60ac3","responseTime":4,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":821,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.996941,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"04d48787b5abb8ec6f7273d486d60ac3"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"88d332cb-83e1-4955-b4e1-b24f8e6e35a5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.0425618} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"04d48787b5abb8ec6f7273d486d60ac3"},"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":"29/Apr/2024:18:36:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 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":"04d48787b5abb8ec6f7273d486d60ac3"} device-1 | {"level":"info","message":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 200 19ms","method":"GET","requestID":"04d48787b5abb8ec6f7273d486d60ac3","responseTime":19,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"df50381331934055f25ba894b59476ac","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:45964","level":"info","msg":"Received request.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":822,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":607,"resp_duration":1.161578,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"experiment:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:~~~TYPE~~~","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"df50381331934055f25ba894b59476ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to run experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to book experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"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:45964","level":"info","msg":"Received request.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":823,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.638481,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5b0bdc00-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":824,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.559146,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5b0c2a20-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F6a65da5f-c4c7-4f35-b8e0-97e90ce16439","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.934646022Z"}]},"request_id":"938a65e7-da99-43ed-892d-0f30a7873775","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.1289697} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b0bdc00-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"ac0effd9-19cd-4bbd-b6b0-ab76cb244a07","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.129827} 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":"5b0c2a20-0657-11ef-8390-917b0c22016f"},"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/6a65da5f-c4c7-4f35-b8e0-97e90ce16439? 200 16ms","method":"GET","requestID":"5b0bdc00-0657-11ef-8390-917b0c22016f","responseTime":16,"status":200,"url":"/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 200 15ms","method":"GET","requestID":"5b0c2a20-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8?"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Setting up experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to lock booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully locked booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to instantiate devices for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":825,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.394558,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"instantiate","level":"info","message":"opa_check","object":"device:http://localhost/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","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":"5b1096f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5f0b4e0a-c89b-424d-935c-1e9f8b4072ea","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.1778822} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"cd24f5ac-6943-4683-b726-31ea347a62a2","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.1781445} 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":"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":"5b1096f0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":9}} device-1 | {"level":"info","message":"registering changed-callback for device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"postDevicesByDeviceId succeeded"} authentication-1 | {"level":"info","message":"POST /token 201 22ms","method":"POST","requestID":"5b168a60-0657-11ef-84ba-09113af4a605","responseTime":22,"status":201,"url":"/token"} device-1 | {"level":"info","message":"POST /devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 68ms","method":"POST","requestID":"5b1096f0-0657-11ef-8390-917b0c22016f","responseTime":68,"status":201,"url":"/devices/6a65da5f-c4c7-4f35-b8e0-97e90ce16439?changedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully instantiated devices for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to update booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully updated booking for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"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:45964","level":"info","msg":"Received request.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":826,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":0.970841,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully running experiment"} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Received request.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5b230d80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"client_addr":"127.0.0.1:35310","level":"info","msg":"Sent response.","req_id":827,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.255933,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5b235ba0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":9}} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"4b1b77ed-e90b-4703-9503-2adb906028e0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.2845793} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":828,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.280952,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 9ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b23a9c0-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:13.177847947Z"}]},"request_id":"c6e091c3-737f-4bc5-bd1f-9985876285da","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.2878485} 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":"5b230d80-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"198b8a5b-caff-4cfe-8388-21e535b1886f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.291715} 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":"5b235ba0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} device-1 | {"data":{"error":"MissingEntityError","message":"Could not find websocket connection for device a72e7931-7c33-4462-9c8c-ac6b6a533456","method":"POST","stack":"MissingEntityError: Could not find websocket connection for device a72e7931-7c33-4462-9c8c-ac6b6a533456\n at Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:42:15)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5b23a9c0-0657-11ef-8390-917b0c22016f"} device-1 | {"level":"info","message":"POST /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling 404 20ms","method":"POST","requestID":"5b23a9c0-0657-11ef-8390-917b0c22016f","responseTime":20,"status":404,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","error":"rpc error: code = Code(2000) desc = Invalid tuple 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58e71582-a49b-4404-9d08-6b520587eea8#owner@http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58e71582-a49b-4404-9d08-6b520587eea8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"d48e477f-47cb-43ca-a55d-b17e949d6bb5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.2975266} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"Could not find websocket connection for device a72e7931-7c33-4462-9c8c-ac6b6a533456"},"status":404}},"level":"error","message":"Could not send status-update message"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"a9c0e037-9427-4074-aba1-7711f4f79ffc","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.2980855} authorization-1 | {"level":"info","message":"POST /relations/update 200 20ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"df50381331934055f25ba894b59476ac"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":20}} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456? 200 33ms","method":"GET","requestID":"5b230d80-0657-11ef-8390-917b0c22016f","responseTime":33,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:13Z"} device-1 | {"level":"info","message":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 200 32ms","method":"GET","requestID":"5b235ba0-0657-11ef-8390-917b0c22016f","responseTime":32,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8?"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5324de33-9b0e-40fa-803d-88ad9f91025d","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415773.3086603} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":829,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.421794,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:13Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 8ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5b27a160-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":8}} experiment-1 | {"data":{"experiment":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8","user":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"level":"info","message":"Successfully handled POST request on endpoint /experiments"} experiment-1 | {"level":"info","message":"POST /experiments? 201 254ms","method":"POST","requestID":"df50381331934055f25ba894b59476ac","responseTime":254,"status":201,"url":"/experiments?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:13 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /experiments? HTTP/1.1","status": "201","body_bytes_sent":"1107","request_time":"0.260","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"df50381331934055f25ba894b59476ac"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling succeeded"} device-1 | {"level":"info","message":"POST /devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling 200 15ms","method":"POST","requestID":"5b27a160-0657-11ef-8390-917b0c22016f","responseTime":15,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"5dbf57ed5286447b3dd715761ed02400","responseTime":1,"status":200,"url":"/auth"} gateway-1 | {"time_local":"29/Apr/2024:18:36:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"OPTIONS /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/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":"5dbf57ed5286447b3dd715761ed02400"} device-1 | {"level":"info","message":"OPTIONS /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/websocket 200 1ms","method":"OPTIONS","requestID":"5dbf57ed5286447b3dd715761ed02400","responseTime":1,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/websocket"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6Ild5TUFUYkZiVjQ1TW52Qm9uNmxSMmtsUXFnRzVPSUt4by1uRzl0X044emFNejd1V01qOS1CR1ZHTUR2OVdPcmVPX2diZllYc3RMbDFYQUNOSEVfZzFnIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.fC9nIBm7JXUwVm3k2_gKNLnNEYR7VZsIP91rLjWubtc","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"46b3f67d2006a72d088e15636397dd13","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"postDevicesByDeviceIdWebsocket called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":830,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.077164,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"action":"edit","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","payload":{"admin":true,"edgeToken":"WyMATbFbV45MnvBon6lR2klQqgG5OIKxo-nG9t_N8zaMz7uWMj9-BGVGMDv9WOreO_gbfYXstLl1XACNHE_g1g","iat":1714415775,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6Ild5TUFUYkZiVjQ1TW52Qm9uNmxSMmtsUXFnRzVPSUt4by1uRzl0X044emFNejd1V01qOS1CR1ZHTUR2OVdPcmVPX2diZllYc3RMbDFYQUNOSEVfZzFnIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.fC9nIBm7JXUwVm3k2_gKNLnNEYR7VZsIP91rLjWubtc"} 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":"46b3f67d2006a72d088e15636397dd13"},"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":"29/Apr/2024:18:36:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/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":"46b3f67d2006a72d088e15636397dd13"} device-1 | {"level":"info","message":"POST /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/websocket 200 20ms","method":"POST","requestID":"46b3f67d2006a72d088e15636397dd13","responseTime":20,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/websocket"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456' connected"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"7983253144fa4a02f2d62df06cc021e9","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","device":{"announcedAvailability":[],"connected":true,"description":"A JS test device","isPublic":true,"name":"JS Device 1","services":[],"type":"device","url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.K_dU4fFSf5AwoCTdJBRnOWCUUFhExMJiSPeYxcdpDpg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 5ms","method":"GET","requestID":"fdf8fc79765a686232955a4c648447b3","responseTime":5,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":831,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.277378,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415775,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.K_dU4fFSf5AwoCTdJBRnOWCUUFhExMJiSPeYxcdpDpg"} 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":"fdf8fc79765a686232955a4c648447b3"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:13.177847947Z"}]},"request_id":"6464a147-96a9-42ae-98f3-4889eb9e2870","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415775.3759167} 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":"fdf8fc79765a686232955a4c648447b3"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/query","query":{},"url":"/relations/query"},"res":{"statusCode":200},"responseTime":4}} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 22ms","method":"POST","requestID":"7983253144fa4a02f2d62df06cc021e9","responseTime":22,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"POST /callbacks/experiment HTTP/1.1","status": "200","body_bytes_sent":"5","request_time":"0.026","http_referrer":"","http_user_agent":"node-fetch","requestID":"7983253144fa4a02f2d62df06cc021e9"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} gateway-1 | {"time_local":"29/Apr/2024:18:36:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456? 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":"fdf8fc79765a686232955a4c648447b3"} device-1 | {"level":"info","message":"GET /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456? 200 21ms","method":"GET","requestID":"fdf8fc79765a686232955a4c648447b3","responseTime":21,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456?"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.K_dU4fFSf5AwoCTdJBRnOWCUUFhExMJiSPeYxcdpDpg","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"c41bbfe173825a23d66b3d8a3ffb5a04","responseTime":3,"status":200,"url":"/auth"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":832,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.251448,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:15Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415775,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3NX0.K_dU4fFSf5AwoCTdJBRnOWCUUFhExMJiSPeYxcdpDpg"} 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":"c41bbfe173825a23d66b3d8a3ffb5a04"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"b47e1b37-c7e7-4f95-9bca-06eba5c3aa54","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415775.4026463} authorization-1 | {"level":"info","message":"POST /relations/query 200 3ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"81","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"c41bbfe173825a23d66b3d8a3ffb5a04"},"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/906b25ed-7382-4d5c-9a98-b153d86926f8? 200 17ms","method":"GET","requestID":"c41bbfe173825a23d66b3d8a3ffb5a04","responseTime":17,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8?"} gateway-1 | {"time_local":"29/Apr/2024:18:36:15 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 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":"c41bbfe173825a23d66b3d8a3ffb5a04"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} device-1 | {"level":"info","message":"getDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":833,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.103563,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5e23ca60-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":5}} authorization-1 | {"client_addr":"127.0.0.1:56886","level":"info","msg":"Received request.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:56886","level":"info","msg":"Sent response.","req_id":834,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.935175,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5e241880-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:13.177847947Z"}]},"request_id":"7cd9e887-e810-4ad3-9cca-9a17287cd391","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.3270407} 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":"5e23ca60-0657-11ef-8390-917b0c22016f"},"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:44466","raw_request":{"continuation_token":"","page_size":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"","user":""}},"raw_response":{"continuation_token":"","tuples":[{"key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"owner","user":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"},"timestamp":"2024-04-29T18:36:10.977011592Z"}]},"request_id":"a3d8dfd5-9c73-4fa2-8c58-9ffcfe91d286","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.3283978} 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":"5e241880-0657-11ef-8390-917b0c22016f"},"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/a72e7931-7c33-4462-9c8c-ac6b6a533456? 200 26ms","method":"GET","requestID":"5e23ca60-0657-11ef-8390-917b0c22016f","responseTime":26,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456?"} device-1 | {"level":"info","message":"getDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"GET /devices/906b25ed-7382-4d5c-9a98-b153d86926f8? 200 25ms","method":"GET","requestID":"5e241880-0657-11ef-8390-917b0c22016f","responseTime":25,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8?"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"45320966-1acf-4973-a8f2-60b9ae164076","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.3467813} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":835,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.786274,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e285e40-0657-11ef-8390-917b0c22016f"},"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/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling 200 14ms","method":"POST","requestID":"5e285e40-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"7c886f4a-dc94-47a5-9b74-496d9df48c6f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.364618} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":836,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.172046,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e2b1d60-0657-11ef-8390-917b0c22016f"},"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/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling 200 14ms","method":"POST","requestID":"5e2b1d60-0657-11ef-8390-917b0c22016f","responseTime":14,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to create peerconnections for experiment"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Building connection plan"} experiment-1 | {"data":{"pairwiseServiceConfigurations":[{"configuration":{},"participants":[{"config":{"interfaces":[]},"role":"device1","serviceId":"electrical","uuid":"8283183d-5ae6-47be-896c-8f812b0b2a4c"},{"config":{"interfaces":[]},"role":"device2","serviceId":"electrical","uuid":"c156d76a-a87b-42d5-bb65-cf3d9d2d16cf"}],"serviceType":"http://api.goldi-labs.de/serviceTypes/electrical","uuid":"69d84bd4-5938-470b-9b1a-66a908b1cdf4"}]},"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/906b25ed-7382-4d5c-9a98-b153d86926f8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"}],"type":"webrtc"}]},"level":"info","message":"Built connection plan"} device-1 | {"level":"info","message":"postPeerconnections called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":837,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":615,"resp_duration":2.573587,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"create","level":"info","message":"opa_check","object":"peerconnection:~~~TYPE~~~","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:~~~TYPE~~~","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415773,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3M30.lIsj4Ca9niD-ZA4AwE3Cek4L1ZXSVSn5vQn8kaIgcHU"} 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":"5e2ddc80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":6}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792'. 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2Fundefined","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]}},"raw_response":{},"request_id":"5129f60f-0cdd-4335-8fe8-9edf342a8af7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.3970435} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"d5097da5-a781-46e1-8052-d1eb852c44e1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.3973453} 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":"5e2ddc80-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} 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/31953f09-344c-4b34-b96c-9c0c3263365b'"} device-1 | {"level":"info","message":"Successfully created signaling queues for peerconnection 'http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b'"} device-1 | {"level":"info","message":"postPeerconnections succeeded"} device-1 | {"level":"info","message":"POST /peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment 201 44ms","method":"POST","requestID":"5e2ddc80-0657-11ef-8390-917b0c22016f","responseTime":44,"status":201,"url":"/peerconnections?closedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment&statusChangedUrl=http%3A%2F%2Flocalhost%2Fcallbacks%2Fexperiment"} device-1 | {"level":"info","message":"deviceAHasVideo: false, deviceBHasVideo: false"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully created peerconnections for experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"a24b8d21-ac6d-456e-aabb-503515030f25","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.463476} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":838,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.531336,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e3a3890-0657-11ef-8390-917b0c22016f"},"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/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling 200 11ms","method":"POST","requestID":"5e3a3890-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"af286008-93c3-4788-9be5-f0b97a88eef5","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.474507} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":839,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.082557,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 4ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e3c3460-0657-11ef-8390-917b0c22016f"},"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/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling 200 8ms","method":"POST","requestID":"5e3c3460-0657-11ef-8390-917b0c22016f","responseTime":8,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling"} device-1 | {"level":"info","message":"Sending status-changed-callback for peerconnection 'http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31953f09-344c-4b34-b96c-9c0c3263365b","statusDeviceA":"connecting","statusDeviceB":"new"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"c387c6a93502f38210e40cf9adafe334","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/906b25ed-7382-4d5c-9a98-b153d86926f8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"new","url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"}],"status":"connecting","type":"webrtc","url":"http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"}}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 7ms","method":"POST","requestID":"c387c6a93502f38210e40cf9adafe334","responseTime":7,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.011","http_referrer":"","http_user_agent":"node-fetch","requestID":"c387c6a93502f38210e40cf9adafe334"} device-1 | {"data":{"peerconnection":"31953f09-344c-4b34-b96c-9c0c3263365b","statusDeviceA":"connecting","statusDeviceB":"connecting"},"level":"info","message":"peerconnection devices status info"} device-1 | {"data":{"peerconnection":"31953f09-344c-4b34-b96c-9c0c3263365b","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/31953f09-344c-4b34-b96c-9c0c3263365b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31953f09-344c-4b34-b96c-9c0c3263365b","statusDeviceA":"connected","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 2ms","method":"GET","requestID":"622b55487f16aec7595f149f8b8589c4","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/906b25ed-7382-4d5c-9a98-b153d86926f8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"}],"status":"connected","type":"webrtc","url":"http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"getPeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31953f09-344c-4b34-b96c-9c0c3263365b","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"47df49a0-3afe-4462-9d05-c1a2c069ea3c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.719944} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":840,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":331,"resp_duration":3.588644,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"peerconnection:http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b","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":"5e616fa0-0657-11ef-8390-917b0c22016f"},"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/31953f09-344c-4b34-b96c-9c0c3263365b 200 12ms","method":"GET","requestID":"5e616fa0-0657-11ef-8390-917b0c22016f","responseTime":12,"status":200,"url":"/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 38ms","method":"POST","requestID":"622b55487f16aec7595f149f8b8589c4","responseTime":38,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.041","http_referrer":"","http_user_agent":"node-fetch","requestID":"622b55487f16aec7595f149f8b8589c4"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"882bfd75-0424-45ea-9eb1-4ca70b68e8a1","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.7507284} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":841,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":2.98146,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 5ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e662a90-0657-11ef-8390-917b0c22016f"},"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/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling 200 11ms","method":"POST","requestID":"5e662a90-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"330db234-5334-4989-849f-bf4d66d98551","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.7649028} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":842,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.562845,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e684d70-0657-11ef-8390-917b0c22016f"},"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/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling 200 11ms","method":"POST","requestID":"5e684d70-0657-11ef-8390-917b0c22016f","responseTime":11,"status":200,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 3ms","method":"GET","requestID":"ee4e2570f12c57b6bdb1708c0ea30ffd","responseTime":3,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling GET request on endpoint /experiments/58e71582-a49b-4404-9d08-6b520587eea8"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":843,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.174266,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"view","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415778,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8"} 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":"ee4e2570f12c57b6bdb1708c0ea30ffd"},"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/58e71582-a49b-4404-9d08-6b520587eea8"} gateway-1 | {"time_local":"29/Apr/2024:18:36:18 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /experiments/58e71582-a49b-4404-9d08-6b520587eea8 HTTP/1.1","status": "200","body_bytes_sent":"1180","request_time":"0.019","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"ee4e2570f12c57b6bdb1708c0ea30ffd"} experiment-1 | {"level":"info","message":"GET /experiments/58e71582-a49b-4404-9d08-6b520587eea8 200 14ms","method":"GET","requestID":"ee4e2570f12c57b6bdb1708c0ea30ffd","responseTime":14,"status":200,"url":"/experiments/58e71582-a49b-4404-9d08-6b520587eea8"} authentication-1 | {"jwt":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8","level":"info","message":"auth send jwt"} authentication-1 | {"level":"info","message":"GET /auth 200 4ms","method":"GET","requestID":"2cc9e994c4dc34e80dc95778e162bfc1","responseTime":4,"status":200,"url":"/auth"} experiment-1 | {"level":"info","message":"Handling DELETE request on endpoint /experiments/58e71582-a49b-4404-9d08-6b520587eea8"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":844,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":662,"resp_duration":1.054373,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"experiment:http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"experiment:http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8","object_type":"experiment","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415778,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8"} 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":"2cc9e994c4dc34e80dc95778e162bfc1"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":3}} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Attempting to finish experiment"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":845,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":674,"resp_duration":1.296516,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"peerconnection:http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"peerconnection:http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b","object_type":"peerconnection","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415778,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8"} 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":"5e72d4c0-0657-11ef-8390-917b0c22016f"},"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/31953f09-344c-4b34-b96c-9c0c3263365b' to 'http://localhost/callbacks/experiment'"} device-1 | {"level":"info","message":"Sending closed-callback for peerconnection 'http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"peerconnection":"31953f09-344c-4b34-b96c-9c0c3263365b","statusDeviceA":"closed","statusDeviceB":"connected"},"level":"info","message":"peerconnection devices status info"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31953f09-344c-4b34-b96c-9c0c3263365b': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"peerconnection:http%3A%2F%2Flocalhost%2Fpeerconnections%2F31953f09-344c-4b34-b96c-9c0c3263365b","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"159ca34b-dbd6-450f-bc1d-7acfc33b3573","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.849151} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"0d1b1340-6b58-4001-a884-01dac69545c0","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.8493629} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authorization-1 | {"level":"info","message":"POST /relations/update 200 8ms","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":"5e72d4c0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":8}} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"70238c008f7a9b1b45eead45efbe216e","responseTime":1,"status":200,"url":"/auth"} experiment-1 | {"data":{"callback":{"callbackType":"event","eventType":"peerconnection-status-changed","peerconnection":{"devices":[{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"closed","url":"http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"}}},"level":"info","message":"received a callback"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"dfffd5972778323b07bac37314976e91","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/906b25ed-7382-4d5c-9a98-b153d86926f8"},{"config":{"services":[{"interfaces":[],"remoteServiceId":"electrical","serviceId":"electrical","serviceType":"http://api.goldi-labs.de/serviceTypes/electrical"}]},"status":"connected","url":"http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"}],"status":"closed","type":"webrtc","url":"http://localhost/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"}}},"level":"info","message":"received a callback"} device-1 | {"level":"info","message":"deletePeerconnectionsByPeerconnectionId succeeded"} device-1 | {"level":"info","message":"DELETE /peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b 204 40ms","method":"DELETE","requestID":"5e72d4c0-0657-11ef-8390-917b0c22016f","responseTime":40,"status":204,"url":"/peerconnections/31953f09-344c-4b34-b96c-9c0c3263365b"} device-1 | {"data":{"error":{"name":"MissingEntityError","status":404}},"level":"error","message":"An error occurred while handling an incoming message for device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456'"} device-1 | {"level":"info","message":"deleteDevicesByDeviceId called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":846,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":650,"resp_duration":1.163932,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"delete","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","payload":{"admin":true,"edgeToken":"Pb6pMBLFsLwuQO8bod19WgFpLnj-RAvnG4iaGxl4367-Jn7zfIABLFhH9L0PrWw0-FSuQ4UYYeHaMdxjucydiQ","iat":1714415778,"sub":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"},"rebac_allow":true,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792","subject_alt":"http://localhost/users/ebef839c-8880-4cf2-a270-71713f9f4792"}},"subject":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJodHRwOi8vbG9jYWxob3N0L3VzZXJzL2ViZWY4MzljLTg4ODAtNGNmMi1hMjcwLTcxNzEzZjlmNDc5MiIsImVkZ2VUb2tlbiI6IlBiNnBNQkxGc0x3dVFPOGJvZDE5V2dGcExuai1SQXZuRzRpYUd4bDQzNjctSm43emZJQUJMRmhIOUwwUHJXdzAtRlN1UTRVWVllSGFNZHhqdWN5ZGlRIiwiYWRtaW4iOnRydWUsImlhdCI6MTcxNDQxNTc3OH0.kNsvwhZXRlFitFMR6sNmNLV1RUr9O4m7FCDg_9mP6r8"} 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":"5e796470-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":4}} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"1a5c9909-2b5d-4724-ae3a-8ed672e8c807","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.8874733} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"8d2d7aae-75eb-47ad-afb3-179af88845f7","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.8878524} 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":"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":"5e796470-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/relations/update","query":{},"url":"/relations/update"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"level":"info","message":"deleteDevicesByDeviceId succeeded"} device-1 | {"level":"info","message":"DELETE /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456 204 33ms","method":"DELETE","requestID":"5e796470-0657-11ef-8390-917b0c22016f","responseTime":33,"status":204,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456"} experiment-1 | {"data":{"experimentUrl":"http://localhost/experiments/58e71582-a49b-4404-9d08-6b520587eea8"},"level":"info","message":"Successfully finished experiment"} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Received request.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2F906b25ed-7382-4d5c-9a98-b153d86926f8","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"8923546c-52f9-4610-9b4e-862318387f3c","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.9317508} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":847,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":3.445041,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 6ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e81c8e0-0657-11ef-8390-917b0c22016f"},"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/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling 200 13ms","method":"POST","requestID":"5e81c8e0-0657-11ef-8390-917b0c22016f","responseTime":13,"status":200,"url":"/devices/906b25ed-7382-4d5c-9a98-b153d86926f8/signaling"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","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%2Febef839c-8880-4cf2-a270-71713f9f4792', relation: 'owner', object: 'experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58e71582-a49b-4404-9d08-6b520587eea8': 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:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","deletes":{"tuple_keys":[{"object":"experiment:http%3A%2F%2Flocalhost%2Fexperiments%2F58e71582-a49b-4404-9d08-6b520587eea8","relation":"owner","user":"http%3A%2F%2Flocalhost%2Fusers%2Febef839c-8880-4cf2-a270-71713f9f4792"}]},"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","writes":null},"raw_response":{},"request_id":"139e4ad8-e647-4e3b-989e-1f5891174124","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.9410357} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"ReadAuthorizationModel","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"raw_response":{"authorization_model":{"id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","schema_version":"1.1","type_definitions":[{"metadata":{"relations":{"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"viewer":{"this":{}}},"type":"user"},{"metadata":{"relations":{"active_booking":{"directly_related_user_types":[{"type":"booking"}]},"booker":{"directly_related_user_types":[]},"owner":{"directly_related_user_types":[{"type":"user"}]},"parent":{"directly_related_user_types":[{"type":"device"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"active_booking":{"this":{}},"booker":{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"active_booking"}}},"owner":{"this":{}},"parent":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"viewer"},"tupleset":{"object":"","relation":"parent"}}}]}}},"type":"device"},{"metadata":{"relations":{"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"member":{"this":{}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"experiment"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"peerconnection"},{"metadata":{"relations":{"experiment":{"directly_related_user_types":[{"type":"experiment"}]},"member":{"directly_related_user_types":[{"type":"user"}]},"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"experiment":{"this":{}},"member":{"union":{"child":[{"this":{}},{"tupleToUserset":{"computedUserset":{"object":"","relation":"member"},"tupleset":{"object":"","relation":"experiment"}}}]}},"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"booking"},{"metadata":{"relations":{"owner":{"directly_related_user_types":[{"type":"user"}]},"viewer":{"directly_related_user_types":[{"type":"user"}]}}},"relations":{"owner":{"this":{}},"viewer":{"union":{"child":[{"this":{}},{"computedUserset":{"object":"","relation":"owner"}}]}}},"type":"federation"}]}},"request_id":"78147b92-54a3-4580-841c-2fdb8b3155dd","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.9414358} device-1 | {"level":"info","message":"postDevicesByDeviceIdSignaling called"} authorization-1 | {"level":"info","message":"POST /relations/update 200 17ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"202","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"2cc9e994c4dc34e80dc95778e162bfc1"},"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:45964","level":"info","msg":"Received request.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","grpc_code":0,"grpc_method":"Check","grpc_service":"openfga.v1.OpenFGAService","grpc_type":"unary","level":"info","message":"grpc_req_complete","peer.address":"127.0.0.1:44466","raw_request":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","contextual_tuples":null,"store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","trace":false,"tuple_key":{"object":"device:http%3A%2F%2Flocalhost%2Fdevices%2Fa72e7931-7c33-4462-9c8c-ac6b6a533456","relation":"viewer","user":"user:experiment-service"}},"raw_response":{"allowed":false,"resolution":""},"request_id":"5c6aa385-b2d5-42b5-93bb-cbbbb4fe014f","store_id":"01HWNJ6DX5PBHWC8K9WFYK6KCK","subsystem":"openfga","timestamp":1714415778.9499772} authorization-1 | {"client_addr":"127.0.0.1:45964","level":"info","msg":"Sent response.","req_id":848,"req_method":"POST","req_path":"/v1/data/crosslab","resp_bytes":307,"resp_duration":4.524581,"resp_status":200,"subsystem":"opa","time":"2024-04-29T18:36:18Z"} authorization-1 | {"action":"message","level":"info","message":"opa_check","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","openfga":{"authorization_model_id":"01HWNJ6DYPY3P4DYMEYH0X9M4R","store":"01HWNJ6DX5PBHWC8K9WFYK6KCK"},"response":{"result":{"allow":true,"enc":"user:experiment-service","object":"device:http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456","object_type":"device","rebac_allow":false,"scope_allow":true,"scopes":["read","write","connect"],"subject":"user:experiment-service","subject_alt":"experiment-service"}},"subject":"experiment-service"} authorization-1 | {"level":"info","message":"POST /authorize 200 7ms","meta":{"req":{"headers":{"accept":"*/*","accept-encoding":"gzip, deflate","accept-language":"*","connection":"keep-alive","content-length":"133","content-type":"application/json","host":"127.0.0.1:3010","sec-fetch-mode":"cors","user-agent":"node","x-authorization-psk":"TestPSK","x-request-id":"5e8439e0-0657-11ef-8390-917b0c22016f"},"httpVersion":"1.1","method":"POST","originalUrl":"/authorize","query":{},"url":"/authorize"},"res":{"statusCode":200},"responseTime":7}} device-1 | {"data":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database","method":"POST","stack":"MissingEntityError: The requested Device Overview does not exist in the database\n at DeviceOverviewRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-common/lib/esm/database/abstractRepository.js:63:19)\n at async DeviceRepository.findOneOrFail (file:///usr/local/lib/node_modules/@crosslab/service-device/app/database/repositories/device.js:155:32)\n at async Object.postDevicesByDeviceIdSignaling (file:///usr/local/lib/node_modules/@crosslab/service-device/app/operations/devices/device/signaling/post.js:22:25)\n at async file:///usr/local/lib/node_modules/@crosslab/service-device/app/generated/routes.js:276:28","status":404,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"},"level":"error","message":"An error occurred during the handling of a request","requestID":"5e8439e0-0657-11ef-8390-917b0c22016f"} device-1 | {"level":"info","message":"POST /devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling 404 14ms","method":"POST","requestID":"5e8439e0-0657-11ef-8390-917b0c22016f","responseTime":14,"status":404,"url":"/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456/signaling"} experiment-1 | {"data":{"response":{"body":{"error":"MissingEntityError","message":"The requested Device Overview does not exist in the database"},"status":404}},"level":"error","message":"Could not send status-update message"} experiment-1 | {"level":"info","message":"Successfully handled DELETE request on endpoint /experiments/58e71582-a49b-4404-9d08-6b520587eea8"} gateway-1 | {"time_local":"29/Apr/2024:18:36:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"DELETE /experiments/58e71582-a49b-4404-9d08-6b520587eea8 HTTP/1.1","status": "204","body_bytes_sent":"0","request_time":"0.189","http_referrer":"","http_user_agent":"node-fetch/1.0 (+https://github.com/bitinn/node-fetch)","requestID":"2cc9e994c4dc34e80dc95778e162bfc1"} experiment-1 | {"level":"info","message":"DELETE /experiments/58e71582-a49b-4404-9d08-6b520587eea8 204 185ms","method":"DELETE","requestID":"2cc9e994c4dc34e80dc95778e162bfc1","responseTime":185,"status":204,"url":"/experiments/58e71582-a49b-4404-9d08-6b520587eea8"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 151ms","method":"POST","requestID":"70238c008f7a9b1b45eead45efbe216e","responseTime":151,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.154","http_referrer":"","http_user_agent":"node-fetch","requestID":"70238c008f7a9b1b45eead45efbe216e"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 200 149ms","method":"POST","requestID":"dfffd5972778323b07bac37314976e91","responseTime":149,"status":200,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36: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.152","http_referrer":"","http_user_agent":"node-fetch","requestID":"dfffd5972778323b07bac37314976e91"} gateway-1 | {"time_local":"29/Apr/2024:18:36:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"1821","request_time":"3.674","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"41124ddb3c3d6f988cb97271130b00ac"} gateway-1 | {"time_local":"29/Apr/2024:18:36:19 +0000","remote_addr":"127.0.0.1","remote_user":"","request":"GET /devices/websocket HTTP/1.1","status": "101","body_bytes_sent":"2197","request_time":"5.996","http_referrer":"","http_user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/109.0.5414.0 Safari/537.36","requestID":"458e9127b3a2bd7ce39627045a35b0c9"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/906b25ed-7382-4d5c-9a98-b153d86926f8' closed"} device-1 | {"level":"info","message":"Sending changed-callback for device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456' to 'http://localhost/callbacks/experiment'"} device-1 | {"data":{"code":1001,"reason":{"data":[],"type":"Buffer"}},"level":"info","message":"websocket connection for device 'http://localhost/devices/a72e7931-7c33-4462-9c8c-ac6b6a533456' closed"} authentication-1 | {"level":"info","message":"auth error No token found","stack":"Error: No token found\n at Object.getAuth (file:///usr/local/lib/node_modules/@crosslab/service-auth/app/operations/auth.js:14:19)\n at file:///usr/local/lib/node_modules/@crosslab/service-auth/app/generated/routes.js:22:45\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/layer.js:95:5)\n at /usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:284:15\n at Function.process_params (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:280:10)\n at Function.handle (/usr/local/lib/node_modules/@crosslab/service-auth/node_modules/express/lib/router/index.js:175:3)"} authentication-1 | {"level":"info","message":"GET /auth 200 1ms","method":"GET","requestID":"0ea04b5dc78b5279c8326f584bd3f088","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/a72e7931-7c33-4462-9c8c-ac6b6a533456"},"eventType":"device-changed"}},"level":"info","message":"received a callback"} experiment-1 | {"level":"info","message":"POST /callbacks/experiment 410 2ms","method":"POST","requestID":"0ea04b5dc78b5279c8326f584bd3f088","responseTime":2,"status":410,"url":"/callbacks/experiment"} gateway-1 | {"time_local":"29/Apr/2024:18:36:19 +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":"0ea04b5dc78b5279c8326f584bd3f088"} authorization-1 | {"level":"info","msg":"Shutting down...","subsystem":"opa","time":"2024-04-29T18:36:24Z"} authorization-1 | {"level":"info","msg":"Server shutdown.","subsystem":"opa","time":"2024-04-29T18:36:24Z"} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"attempting to shutdown gracefully","subsystem":"openfga","timestamp":1714415784.1797705} authorization-1 | {"build.commit":"bc6a45ade4ae02d389b2588ae3bb4676fdcf77ec","build.version":"v1.2.0","level":"info","message":"server exited. goodbye ๐Ÿ‘‹","subsystem":"openfga","timestamp":1714415784.1804466} authorization-1 exited with code 0 federation-1 exited with code 0 authentication-1 exited with code 0 experiment-1 exited with code 0 device-1 exited with code 0 gateway-1 exited with code 0